[jboss-cvs] JBoss Messaging SVN: r4046 - in trunk: src/main/org/jboss/messaging/core/message and 19 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 14 09:50:44 EDT 2008
Author: timfox
Date: 2008-04-14 09:50:43 -0400 (Mon, 14 Apr 2008)
New Revision: 4046
Added:
trunk/src/main/org/jboss/messaging/core/remoting/Packet.java
Removed:
trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java
Modified:
trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java
trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java
trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/message/Message.java
trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java
trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java
trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java
trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java
trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java
trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java
trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java
trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java
trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java
trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java
Log:
Some refactoring to transport - make session id, target id, correlation id etc into longs
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,7 +50,7 @@
// Attributes -----------------------------------------------------------------------------------
- private final String id;
+ private final long serverTargetID;
private final ClientSessionInternal session;
@@ -62,12 +62,12 @@
// Constructors ---------------------------------------------------------------------------------
- public ClientBrowserImpl(final String id, final ClientSessionInternal session,
+ public ClientBrowserImpl(final long serverTargetID, final ClientSessionInternal session,
final RemotingConnection remotingConnection)
{
this.remotingConnection = remotingConnection;
- this.id = id;
+ this.serverTargetID = serverTargetID;
this.session = session;
}
@@ -83,7 +83,7 @@
try
{
- remotingConnection.send(id, session.getID(), new PacketImpl(CLOSE));
+ remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(CLOSE));
}
finally
{
@@ -102,7 +102,7 @@
{
checkClosed();
- remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_RESET));
+ remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_RESET));
}
public boolean hasNextMessage() throws MessagingException
@@ -110,7 +110,7 @@
checkClosed();
SessionBrowserHasNextMessageResponseMessage response =
- (SessionBrowserHasNextMessageResponseMessage)remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE));
+ (SessionBrowserHasNextMessageResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE));
return response.hasNext();
}
@@ -120,7 +120,7 @@
checkClosed();
SessionBrowserNextMessageResponseMessage response =
- (SessionBrowserNextMessageResponseMessage)remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_NEXTMESSAGE));
+ (SessionBrowserNextMessageResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_NEXTMESSAGE));
return response.getMessage();
}
@@ -130,7 +130,7 @@
checkClosed();
SessionBrowserNextMessageBlockResponseMessage response =
- (SessionBrowserNextMessageBlockResponseMessage)remotingConnection.send(id, session.getID(), new SessionBrowserNextMessageBlockMessage(maxMessages));
+ (SessionBrowserNextMessageBlockResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new SessionBrowserNextMessageBlockMessage(maxMessages));
return response.getMessages();
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -53,7 +53,6 @@
public class ClientConnectionFactoryImpl implements ClientConnectionFactory, Serializable
{
// Constants ------------------------------------------------------------------------------------
- public static final String id = "CONNECTION_FACTORY_ID";
private static final long serialVersionUID = 2512460695662741413L;
@@ -97,7 +96,7 @@
this.defaultConsumerMaxRate = defaultConsumerMaxRate;
this.defaultProducerWindowSize = defaultProducerWindowSize;
this.defaultProducerMaxRate = defaultProducerMaxRate;
- this.dispatcher = new PacketDispatcherImpl();
+ this.dispatcher = new PacketDispatcherImpl(null);
}
public ClientConnectionFactoryImpl(final int serverID, final Configuration config,
@@ -111,7 +110,7 @@
this.defaultConsumerMaxRate = -1;
this.defaultProducerWindowSize = 1000;
this.defaultProducerMaxRate = -1;
- this.dispatcher = new PacketDispatcherImpl();
+ this.dispatcher = new PacketDispatcherImpl(null);
}
public ClientConnection createConnection() throws MessagingException
@@ -130,16 +129,16 @@
remotingConnection.start();
- String sessionID = remotingConnection.getSessionID();
+ long sessionID = remotingConnection.getSessionID();
CreateConnectionRequest request =
new CreateConnectionRequest(v, sessionID, JMSClientVMIdentifier.instance, username, password);
CreateConnectionResponse response =
- (CreateConnectionResponse)remotingConnection.send(id, request);
+ (CreateConnectionResponse)remotingConnection.send(0, request);
ClientConnectionImpl connection =
- new ClientConnectionImpl(response.getConnectionID(), serverID, strictTck, remotingConnection,
+ new ClientConnectionImpl(response.getConnectionTargetID(), serverID, strictTck, remotingConnection,
defaultConsumerWindowSize, defaultConsumerMaxRate,
defaultProducerWindowSize, defaultProducerMaxRate);
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -26,9 +26,7 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.FailureListener;
@@ -37,6 +35,7 @@
import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.util.ConcurrentHashSet;
/**
* The client-side Connection connectionFactory class.
@@ -60,7 +59,7 @@
// Attributes -----------------------------------------------------------------------------------
- private final String id;
+ private final long serverTargetID;
private final int serverID;
@@ -68,7 +67,7 @@
private final boolean strictTck;
- private final Map<String, ClientSession> children = new ConcurrentHashMap<String, ClientSession>();
+ private final Set<ClientSession> sessions = new ConcurrentHashSet<ClientSession>();
private volatile boolean closed;
@@ -85,14 +84,14 @@
// Constructors ---------------------------------------------------------------------------------
- public ClientConnectionImpl(final String id, final int serverID, final boolean strictTck,
+ public ClientConnectionImpl(final long serverTargetID, final int serverID, final boolean strictTck,
final RemotingConnection connection,
final int defaultConsumerWindowSize,
final int defaultConsumerMaxRate,
final int defaultProducerWindowSize,
final int defaultProducerMaxRate)
{
- this.id = id;
+ this.serverTargetID = serverTargetID;
this.serverID = serverID;
@@ -119,14 +118,14 @@
ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(xa, autoCommitSends, autoCommitAcks);
- ConnectionCreateSessionResponseMessage response = (ConnectionCreateSessionResponseMessage)remotingConnection.send(id, request);
+ ConnectionCreateSessionResponseMessage response = (ConnectionCreateSessionResponseMessage)remotingConnection.send(serverTargetID, request);
ClientSession session =
new ClientSessionImpl(this, response.getSessionID(), ackBatchSize, cacheProducers,
autoCommitSends, autoCommitAcks, blockOnAcknowledge,
defaultConsumerWindowSize, defaultConsumerMaxRate, defaultProducerWindowSize, defaultProducerMaxRate);
- children.put(response.getSessionID(), session);
+ sessions.add(session);
return session;
}
@@ -135,14 +134,14 @@
{
checkClosed();
- remotingConnection.send(id, id, new PacketImpl(CONN_START), true);
+ remotingConnection.send(serverTargetID, serverTargetID, new PacketImpl(CONN_START), true);
}
public void stop() throws MessagingException
{
checkClosed();
- remotingConnection.send(id, new PacketImpl(CONN_STOP));
+ remotingConnection.send(serverTargetID, new PacketImpl(CONN_STOP));
}
public void setFailureListener(final FailureListener listener) throws MessagingException
@@ -163,7 +162,7 @@
{
closeChildren();
- remotingConnection.send(id, new PacketImpl(CLOSE));
+ remotingConnection.send(serverTargetID, new PacketImpl(CLOSE));
}
finally
{
@@ -191,9 +190,9 @@
return remotingConnection;
}
- public void removeChild(String key)
+ public void removeSession(final ClientSession session)
{
- children.remove(key);
+ sessions.remove(session);
}
// Public ---------------------------------------------------------------------------------------
@@ -214,9 +213,9 @@
private void closeChildren() throws MessagingException
{
- //We copy the set of children to prevent ConcurrentModificationException which would occur
+ //We copy the set of sessions to prevent ConcurrentModificationException which would occur
//when the child trues to remove itself from its parent
- Set<ClientSession> childrenClone = new HashSet<ClientSession>(children.values());
+ Set<ClientSession> childrenClone = new HashSet<ClientSession>(sessions);
for (ClientSession session: childrenClone)
{
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -7,6 +7,7 @@
package org.jboss.messaging.core.client.impl;
import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientSession;
/**
*
@@ -21,5 +22,5 @@
RemotingConnection getRemotingConnection();
- void removeChild(String id);
+ void removeSession(ClientSession session);
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -63,8 +63,10 @@
private final ClientSessionInternal session;
- private final String id;
+ private final long serverTargetID;
+ private final long clientTargetID;
+
private final ExecutorService sessionExecutor;
private final RemotingConnection remotingConnection;
@@ -90,13 +92,16 @@
// Constructors
// ---------------------------------------------------------------------------------
- public ClientConsumerImpl(final ClientSessionInternal session, final String id,
+ public ClientConsumerImpl(final ClientSessionInternal session, final long serverTargetID,
+ final long clientTargetID,
final ExecutorService sessionExecutor,
final RemotingConnection remotingConnection,
final boolean direct, final int tokenBatchSize)
{
- this.id = id;
+ this.serverTargetID = serverTargetID;
+ this.clientTargetID = clientTargetID;
+
this.session = session;
this.sessionExecutor = sessionExecutor;
@@ -247,9 +252,9 @@
receiverThread = null;
- remotingConnection.send(id, session.getID(), new PacketImpl(CLOSE));
+ remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(CLOSE));
- remotingConnection.getPacketDispatcher().unregister(id);
+ remotingConnection.getPacketDispatcher().unregister(clientTargetID);
}
finally
{
@@ -265,9 +270,9 @@
// ClientConsumerInternal implementation
// --------------------------------------------------------------
- public String getID()
+ public long getClientTargetID()
{
- return id;
+ return clientTargetID;
}
public void handleMessage(final ConsumerDeliverMessage message) throws Exception
@@ -296,7 +301,7 @@
}
else
{
- throw new IllegalStateException("Invalid delivery id " + delID);
+ throw new IllegalStateException("Invalid delivery serverTargetID " + delID);
}
}
@@ -371,7 +376,7 @@
{
tokensToSend = 0;
- remotingConnection.send(id, session.getID(), new ConsumerFlowTokenMessage(tokenBatchSize), true);
+ remotingConnection.send(serverTargetID, session.getServerTargetID(), new ConsumerFlowTokenMessage(tokenBatchSize), true);
}
}
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -19,7 +19,7 @@
*/
public interface ClientConsumerInternal extends ClientConsumer
{
- String getID();
+ long getClientTargetID();
void handleMessage(ConsumerDeliverMessage message) throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -3,10 +3,10 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_DELIVER;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
@@ -21,16 +21,16 @@
private final ClientConsumerInternal clientConsumer;
- private final String consumerID;
+ private final long consumerID;
- public ClientConsumerPacketHandler(final ClientConsumerInternal clientConsumer, final String consumerID)
+ public ClientConsumerPacketHandler(final ClientConsumerInternal clientConsumer, final long consumerID)
{
this.clientConsumer = clientConsumer;
this.consumerID = consumerID;
}
- public String getID()
+ public long getID()
{
return consumerID;
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,7 +50,7 @@
private final String address;
- private final String id;
+ private final long serverTargetID;
private final ClientSessionInternal session;
@@ -70,13 +70,14 @@
// Constructors ---------------------------------------------------------------------------------
- public ClientProducerImpl(final ClientSessionInternal session, final String id, final String address,
+ public ClientProducerImpl(final ClientSessionInternal session, final long serverTargetID,
+ final String address,
final RemotingConnection remotingConnection, final int windowSize,
final int maxRate)
{
this.session = session;
- this.id = id;
+ this.serverTargetID = serverTargetID;
this.address = address;
@@ -139,7 +140,7 @@
windowSize--;
}
- remotingConnection.send(id, session.getID(), message, !msg.isDurable());
+ remotingConnection.send(serverTargetID, session.getServerTargetID(), message, !msg.isDurable());
if (rateLimiter != null)
{
@@ -168,7 +169,7 @@
session.removeProducer(this);
- remotingConnection.getPacketDispatcher().unregister(id);
+ remotingConnection.getPacketDispatcher().unregister(serverTargetID);
closed = true;
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -3,9 +3,9 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
@@ -22,16 +22,16 @@
private final ClientProducerInternal clientProducer;
- private final String producerID;
+ private final long producerID;
- public ClientProducerPacketHandler(final ClientProducerInternal clientProducer, final String producerID)
+ public ClientProducerPacketHandler(final ClientProducerInternal clientProducer, final long producerID)
{
this.clientProducer = clientProducer;
this.producerID = producerID;
}
- public String getID()
+ public long getID()
{
return producerID;
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,6 +35,7 @@
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicLong;
import javax.transaction.xa.XAException;
import javax.transaction.xa.XAResource;
@@ -45,8 +46,8 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
@@ -101,7 +102,7 @@
private final ClientConnectionInternal connection;
- private final String id;
+ private final long serverTargetID;
private final int lazyAckBatchSize;
@@ -137,7 +138,7 @@
private final Set<ClientProducer> producers = new HashSet<ClientProducer>();
- private final Map<String, ClientConsumerInternal> consumers = new HashMap<String, ClientConsumerInternal>();
+ private final Map<Long, ClientConsumerInternal> consumers = new HashMap<Long, ClientConsumerInternal>();
private final Map<String, ClientProducerInternal> producerCache;
@@ -152,9 +153,11 @@
private final boolean blockOnAcknowledge;
+ private static AtomicLong clientTargetIDGenerator = new AtomicLong(0);
+
// Constructors ---------------------------------------------------------------------------------
- public ClientSessionImpl(final ClientConnectionInternal connection, final String id,
+ public ClientSessionImpl(final ClientConnectionInternal connection, final long serverTargetID,
final int lazyAckBatchSize, final boolean cacheProducers,
final boolean autoCommitSends, final boolean autoCommitAcks,
final boolean blockOnAcknowledge,
@@ -168,7 +171,7 @@
throw new IllegalArgumentException("Invalid lazyAckbatchSize, valid values are > 0 or -1 (infinite)");
}
- this.id = id;
+ this.serverTargetID = serverTargetID;
this.connection = connection;
@@ -214,14 +217,14 @@
SessionCreateQueueMessage request = new SessionCreateQueueMessage(address, queueName, filterString, durable, temporary);
- remotingConnection.send(id, request);
+ remotingConnection.send(serverTargetID, request);
}
public void deleteQueue(final String queueName) throws MessagingException
{
checkClosed();
- remotingConnection.send(id, new SessionDeleteQueueMessage(queueName));
+ remotingConnection.send(serverTargetID, new SessionDeleteQueueMessage(queueName));
}
public SessionQueueQueryResponseMessage queueQuery(final String queueName) throws MessagingException
@@ -230,7 +233,7 @@
SessionQueueQueryMessage request = new SessionQueueQueryMessage(queueName);
- SessionQueueQueryResponseMessage response = (SessionQueueQueryResponseMessage)remotingConnection.send(id, request);
+ SessionQueueQueryResponseMessage response = (SessionQueueQueryResponseMessage)remotingConnection.send(serverTargetID, request);
return response;
}
@@ -241,7 +244,7 @@
SessionBindingQueryMessage request = new SessionBindingQueryMessage(address);
- SessionBindingQueryResponseMessage response = (SessionBindingQueryResponseMessage)remotingConnection.send(id, request);
+ SessionBindingQueryResponseMessage response = (SessionBindingQueryResponseMessage)remotingConnection.send(serverTargetID, request);
return response;
}
@@ -252,7 +255,7 @@
SessionAddDestinationMessage request = new SessionAddDestinationMessage(address, temporary);
- remotingConnection.send(id, request);
+ remotingConnection.send(serverTargetID, request);
}
public void removeDestination(final String address, final boolean temporary) throws MessagingException
@@ -261,7 +264,7 @@
SessionRemoveDestinationMessage request = new SessionRemoveDestinationMessage(address, temporary);
- remotingConnection.send(id, request);
+ remotingConnection.send(serverTargetID, request);
}
public ClientConsumer createConsumer(final String queueName, final String filterString, final boolean noLocal,
@@ -273,19 +276,21 @@
new SessionCreateConsumerMessage(queueName, filterString, noLocal, autoDeleteQueue,
defaultConsumerWindowSize, defaultConsumerMaxRate);
- SessionCreateConsumerResponseMessage response = (SessionCreateConsumerResponseMessage)remotingConnection.send(id, request);
+ SessionCreateConsumerResponseMessage response = (SessionCreateConsumerResponseMessage)remotingConnection.send(serverTargetID, request);
+ long clientTargetID = clientTargetIDGenerator.getAndIncrement();
+
ClientConsumerInternal consumer =
- new ClientConsumerImpl(this, response.getConsumerID(), executor, remotingConnection, direct, 1);
+ new ClientConsumerImpl(this, response.getConsumerTargetID(), clientTargetID, executor, remotingConnection, direct, 1);
- consumers.put(response.getConsumerID(), consumer);
+ consumers.put(response.getConsumerTargetID(), consumer);
- remotingConnection.getPacketDispatcher().register(new ClientConsumerPacketHandler(consumer, response.getConsumerID()));
+ remotingConnection.getPacketDispatcher().register(new ClientConsumerPacketHandler(consumer, response.getConsumerTargetID()));
//Now we send window size tokens to start the consumption
//We even send it if windowSize == -1, since we need to start the consumer
- remotingConnection.send(response.getConsumerID(), id, new ConsumerFlowTokenMessage(response.getWindowSize()), true);
+ remotingConnection.send(response.getConsumerTargetID(), serverTargetID, new ConsumerFlowTokenMessage(response.getWindowSize()), true);
return consumer;
}
@@ -298,9 +303,9 @@
SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(queueName, coreSelector);
- SessionCreateBrowserResponseMessage response = (SessionCreateBrowserResponseMessage)remotingConnection.send(id, request);
+ SessionCreateBrowserResponseMessage response = (SessionCreateBrowserResponseMessage)remotingConnection.send(serverTargetID, request);
- ClientBrowser browser = new ClientBrowserImpl(response.getBrowserID(), this, remotingConnection);
+ ClientBrowser browser = new ClientBrowserImpl(response.getBrowserTargetID(), this, remotingConnection);
browsers.add(browser);
@@ -328,15 +333,15 @@
SessionCreateProducerMessage request = new SessionCreateProducerMessage(address, windowSize, maxRate);
SessionCreateProducerResponseMessage response =
- (SessionCreateProducerResponseMessage)remotingConnection.send(id, request);
+ (SessionCreateProducerResponseMessage)remotingConnection.send(serverTargetID, request);
//maxRate and windowSize can be overridden by the server
- producer = new ClientProducerImpl(this, response.getProducerID(), address,
+ producer = new ClientProducerImpl(this, response.getProducerTargetID(), address,
remotingConnection, response.getWindowSize(),
response.getMaxRate());
- remotingConnection.getPacketDispatcher().register(new ClientProducerPacketHandler(producer, response.getProducerID()));
+ remotingConnection.getPacketDispatcher().register(new ClientProducerPacketHandler(producer, response.getProducerTargetID()));
}
producers.add(producer);
@@ -365,7 +370,7 @@
acknowledgeInternal(false);
- remotingConnection.send(id, new PacketImpl(SESS_COMMIT));
+ remotingConnection.send(serverTargetID, new PacketImpl(SESS_COMMIT));
lastCommittedID = lastID;
}
@@ -375,7 +380,7 @@
checkClosed();
//We tell each consumer to clear it's buffers and ignore any deliveries with
- //delivery id > last delivery id, until it gets delivery id = lastID again
+ //delivery serverTargetID > last delivery serverTargetID, until it gets delivery serverTargetID = lastID again
if (autoCommitAcks)
{
@@ -393,7 +398,7 @@
toAckCount = 0;
- remotingConnection.send(id, new PacketImpl(SESS_ROLLBACK));
+ remotingConnection.send(serverTargetID, new PacketImpl(SESS_ROLLBACK));
}
public void acknowledge() throws MessagingException
@@ -411,7 +416,7 @@
if (deliveryExpired)
{
- remotingConnection.send(id, id, new SessionCancelMessage(lastID, true), true);
+ remotingConnection.send(serverTargetID, serverTargetID, new SessionCancelMessage(lastID, true), true);
toAckCount = 0;
}
@@ -454,13 +459,13 @@
acknowledgeInternal(false);
- remotingConnection.send(id, new PacketImpl(CLOSE));
-
- executor.shutdown();
+ remotingConnection.send(serverTargetID, new PacketImpl(CLOSE));
}
finally
{
- connection.removeChild(id);
+ executor.shutdown();
+
+ connection.removeSession(this);
closed = true;
}
@@ -488,9 +493,9 @@
// ClientSessionInternal implementation ------------------------------------------------------------
- public String getID()
+ public long getServerTargetID()
{
- return id;
+ return serverTargetID;
}
public ClientConnectionInternal getConnection()
@@ -507,7 +512,7 @@
public void removeConsumer(final ClientConsumerInternal consumer) throws MessagingException
{
- consumers.remove(consumer.getID());
+ consumers.remove(consumer.getClientTargetID());
//1. flush any unacked message to the server
@@ -515,7 +520,7 @@
//2. cancel all deliveries on server but not in tx
- remotingConnection.send(id, new SessionCancelMessage(-1, false));
+ remotingConnection.send(serverTargetID, new SessionCancelMessage(-1, false));
}
public void removeProducer(final ClientProducerInternal producer)
@@ -543,7 +548,7 @@
{
SessionXACommitMessage packet = new SessionXACommitMessage(xid, onePhase);
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
if (response.isError())
{
@@ -584,7 +589,7 @@
//Need to flush any acks to server first
acknowledgeInternal(false);
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
if (response.isError())
{
@@ -606,7 +611,7 @@
//Need to flush any acks to server first
acknowledgeInternal(false);
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, new SessionXAForgetMessage(xid));
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, new SessionXAForgetMessage(xid));
if (response.isError())
{
@@ -625,7 +630,7 @@
try
{
SessionXAGetTimeoutResponseMessage response =
- (SessionXAGetTimeoutResponseMessage)remotingConnection.send(id, new PacketImpl(SESS_XA_GET_TIMEOUT));
+ (SessionXAGetTimeoutResponseMessage)remotingConnection.send(serverTargetID, new PacketImpl(SESS_XA_GET_TIMEOUT));
return response.getTimeoutSeconds();
}
@@ -659,7 +664,7 @@
{
SessionXAPrepareMessage packet = new SessionXAPrepareMessage(xid);
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
if (response.isError())
{
@@ -682,7 +687,7 @@
{
try
{
- SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.send(id, new PacketImpl(SESS_XA_INDOUBT_XIDS));
+ SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.send(serverTargetID, new PacketImpl(SESS_XA_INDOUBT_XIDS));
List<Xid> xids = response.getXids();
@@ -703,7 +708,7 @@
{
SessionXARollbackMessage packet = new SessionXARollbackMessage(xid);
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
if (response.isError())
{
@@ -723,7 +728,7 @@
try
{
SessionXASetTimeoutResponseMessage response =
- (SessionXASetTimeoutResponseMessage)remotingConnection.send(id, new SessionXASetTimeoutMessage(seconds));
+ (SessionXASetTimeoutResponseMessage)remotingConnection.send(serverTargetID, new SessionXASetTimeoutMessage(seconds));
return response.isOK();
}
@@ -763,7 +768,7 @@
throw new XAException(XAException.XAER_INVAL);
}
- SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+ SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
if (response.isError())
{
@@ -801,7 +806,7 @@
SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(lastID, !broken);
- remotingConnection.send(id, id, message, !block);
+ remotingConnection.send(serverTargetID, serverTargetID, message, !block);
acked = true;
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -19,7 +19,7 @@
*/
public interface ClientSessionInternal extends ClientSession
{
- String getID();
+ long getServerTargetID();
ClientConnectionInternal getConnection();
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -2,8 +2,8 @@
import org.jboss.messaging.core.client.FailureListener;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
*
@@ -18,17 +18,17 @@
public void stop();
- public String getSessionID();
+ public long getSessionID();
/**
* Use this method if the packet is to be executed in the context of the targetID (i.e. for
* sessions, connections & connections factories)
*/
- Packet send(String targetID, Packet packet) throws MessagingException;
+ Packet send(long targetID, Packet packet) throws MessagingException;
- Packet send(String targetID, String executorID, Packet packet) throws MessagingException;
+ Packet send(long targetID, long executorID, Packet packet) throws MessagingException;
- Packet send(String targetID, String executorID, Packet packet, boolean oneWay) throws MessagingException;
+ Packet send(long targetID, long executorID, Packet packet, boolean oneWay) throws MessagingException;
void setFailureListener(FailureListener newListener);
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -30,9 +30,9 @@
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
*
@@ -117,17 +117,16 @@
log.trace(this + " closed");
}
- public String getSessionID()
+ public long getSessionID()
{
if (session == null || !session.isConnected())
{
- return null;
+ return -1;
}
return session.getID();
}
- public Packet send(String targetID, Packet packet)
- throws MessagingException
+ public Packet send(final long targetID, final Packet packet) throws MessagingException
{
return send(targetID, targetID, packet);
}
@@ -135,12 +134,12 @@
/**
* send the packet and block until a response is received (<code>oneWay</code> is set to <code>false</code>)
*/
- public Packet send(final String targetID, final String executorID, final Packet packet) throws MessagingException
+ public Packet send(final long targetID, final long executorID, final Packet packet) throws MessagingException
{
return send(targetID, executorID, packet, false);
}
- public Packet send(final String targetID, final String executorID, final Packet packet, final boolean oneWay) throws MessagingException
+ public Packet send(final long targetID, final long executorID, final Packet packet, final boolean oneWay) throws MessagingException
{
assert packet != null;
Modified: trunk/src/main/org/jboss/messaging/core/message/Message.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/Message.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/message/Message.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -188,13 +188,13 @@
* Get the connection id
* @return
*/
- String getConnectionID();
+ long getConnectionID();
/**
* Set the connection id
* @param connectionID
*/
- void setConnectionID(String connectionID);
+ void setConnectionID(long connectionID);
/**
Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -74,7 +74,7 @@
//The payload of MessageImpl instances is opaque
private byte[] payload;
- private String connectionID;
+ private long connectionID;
private final AtomicInteger durableRefCount = new AtomicInteger(0);
@@ -259,12 +259,12 @@
this.payload = payload;
}
- public String getConnectionID()
+ public long getConnectionID()
{
return connectionID;
}
- public void setConnectionID(final String connectionID)
+ public void setConnectionID(final long connectionID)
{
this.connectionID = connectionID;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,7 +8,6 @@
package org.jboss.messaging.core.remoting;
import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
*
Modified: trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -18,9 +18,9 @@
public interface KeepAliveFactory
{
- Ping ping(String sessionID);
+ Ping ping(long sessionID);
- Pong pong(String sessionID, Ping ping);
+ Pong pong(long sessionID, Ping ping);
- boolean isPing(String sessionID, Object message);
+ boolean isPing(long sessionID, Object message);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,7 +8,6 @@
import java.util.concurrent.TimeUnit;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -18,9 +17,8 @@
*/
public interface NIOSession
{
+ long getID();
- String getID();
-
void write(Object object) throws Exception;
Object writeAndBlock(Packet packet, long timeout, TimeUnit timeUnit) throws Exception;
Copied: trunk/src/main/org/jboss/messaging/core/remoting/Packet.java (from rev 4032, trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/Packet.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/Packet.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+package org.jboss.messaging.core.remoting;
+
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+
+
+public interface Packet
+{
+ // Public --------------------------------------------------------
+
+ void setCorrelationID(long correlationID);
+
+ long getCorrelationID();
+
+ PacketType getType();
+
+ long getTargetID();
+
+ void setTargetID(long targetID);
+
+ long getExecutorID();
+
+ void setExecutorID(long executorID);
+
+ void setOneWay(boolean oneWay);
+
+ boolean isOneWay();
+
+ void normalize(Packet other);
+
+ /**
+ * An AbstractPacket is a request if it has a target ID and a correlation ID
+ */
+ public boolean isRequest();
+}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
@@ -17,10 +16,9 @@
*/
public interface PacketDispatcher
{
-
void register(PacketHandler handler);
- void unregister(String handlerID);
+ void unregister(long handlerID);
void setListener(PacketHandlerRegistrationListener listener);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* A PacketHandler handles packets (as defined by {@link Packet} and its
@@ -24,15 +23,7 @@
*/
public interface PacketHandler
{
- /*
- * The advantage to use String as ID is that we can leverage Java 5 UUID to
- * generate these IDs. However theses IDs are 128 bite long and it increases
- * the size of a packet (compared to integer or long).
- *
- * By switching to Long, we could reduce the size of the packet and maybe
- * increase the performance (to check after some performance tests)
- */
- String getID();
+ long getID();
void handle(Packet packet, PacketSender sender);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -14,6 +14,6 @@
*/
public interface PacketHandlerRegistrationListener
{
- void handlerRegistered(String handlerID);
- void handlerUnregistered(String handlerID);
+ void handlerRegistered(long handlerID);
+ void handlerUnregistered(long handlerID);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -18,7 +17,7 @@
{
void send(Packet packet) throws Exception;
- String getSessionID();
+ long getSessionID();
String getRemoteAddress();
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -23,13 +23,13 @@
// Attributes ----------------------------------------------------
- private String sessionID;
+ private long sessionID;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public RemotingException(int code, String message, String sessionID)
+ public RemotingException(int code, String message, long sessionID)
{
super(code, message);
this.sessionID = sessionID;
@@ -37,7 +37,7 @@
// Public --------------------------------------------------------
- public String getSessionID()
+ public long getSessionID()
{
return sessionID;
}
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -1,39 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- *
- * @version <tt>$Revision$</tt>
- */
-public class Assert
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- public final static void assertValidID(String id)
- {
- assert id != null;
- assert id.length() != 0;
- }
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -11,6 +11,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.logging.Logger;
@@ -39,7 +40,9 @@
private Map<String, PacketDispatcher> localDispatchers = new HashMap<String, PacketDispatcher>();
public Map<String, NIOConnectorHolder> connectors = new HashMap<String, NIOConnectorHolder>();
-
+
+ private final AtomicLong idCounter = new AtomicLong(0);
+
// Static --------------------------------------------------------
/**
@@ -101,7 +104,7 @@
if (localDispatchers.containsKey(key))
{
PacketDispatcher localDispatcher = localDispatchers.get(key);
- NIOConnector connector = new INVMConnector(dispatcher, localDispatcher);
+ NIOConnector connector = new INVMConnector(idCounter.getAndIncrement(), dispatcher, localDispatcher);
if (log.isDebugEnabled())
log.debug("Created " + connector + " to connect to "
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_ID_SET;
import java.io.Serializable;
@@ -16,11 +15,11 @@
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketHandlerRegistrationListener;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -38,37 +37,24 @@
// Attributes ----------------------------------------------------
- private Map<String, PacketHandler> handlers;
- public List<Interceptor> filters;
+ private final Map<Long, PacketHandler> handlers;
+ public final List<Interceptor> filters;
private transient PacketHandlerRegistrationListener listener;
// Static --------------------------------------------------------
- // public static final PacketDispatcher client = new PacketDispatcher();
-
// Constructors --------------------------------------------------
- public PacketDispatcherImpl()
+ public PacketDispatcherImpl(final List<Interceptor> filters)
{
- handlers = new ConcurrentHashMap<String, PacketHandler>();
- }
-
- public PacketDispatcherImpl(List<Interceptor> filters)
- {
- this();
+ handlers = new ConcurrentHashMap<Long, PacketHandler>();
this.filters = filters;
}
// Public --------------------------------------------------------
- /* (non-Javadoc)
- * @see org.jboss.messaging.core.remoting.impl.IPacketDispatcher#register(org.jboss.messaging.core.remoting.PacketHandler)
- */
- public void register(PacketHandler handler)
- {
- assertValidID(handler.getID());
- assert handler != null;
-
+ public void register(final PacketHandler handler)
+ {
handlers.put(handler.getID(), handler);
if (log.isDebugEnabled())
@@ -77,16 +63,13 @@
}
if (listener != null)
+ {
listener.handlerRegistered(handler.getID());
+ }
}
- /* (non-Javadoc)
- * @see org.jboss.messaging.core.remoting.impl.IPacketDispatcher#unregister(java.lang.String)
- */
- public void unregister(String handlerID)
+ public void unregister(final long handlerID)
{
- assertValidID(handlerID);
-
PacketHandler handler = handlers.remove(handlerID);
if (log.isDebugEnabled())
@@ -95,25 +78,25 @@
}
if (listener != null)
+ {
listener.handlerUnregistered(handlerID);
+ }
}
- public void setListener(PacketHandlerRegistrationListener listener)
+ public void setListener(final PacketHandlerRegistrationListener listener)
{
this.listener = listener;
}
- public PacketHandler getHandler(String handlerID)
+ public PacketHandler getHandler(final long handlerID)
{
- assertValidID(handlerID);
-
return handlers.get(handlerID);
}
- public void dispatch(Packet packet, PacketSender sender) throws Exception
+ public void dispatch(final Packet packet, final PacketSender sender) throws Exception
{
- String targetID = packet.getTargetID();
- if (NO_ID_SET.equals(targetID))
+ long targetID = packet.getTargetID();
+ if (NO_ID_SET == targetID)
{
log.error("Packet is not handled, it has no targetID: " + packet + ": " + System.identityHashCode(packet));
return;
@@ -126,7 +109,6 @@
callFilters(packet);
handler.handle(packet, sender);
-
}
else
{
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -9,14 +9,13 @@
import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NEED_DATA;
import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NOT_OK;
import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.OK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_ID_SET;
import java.nio.charset.CharacterCodingException;
import javax.transaction.xa.Xid;
import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.transaction.impl.XidImpl;
@@ -38,7 +37,9 @@
public static final int FLOAT_LENGTH = 4;
public static final int LONG_LENGTH = 8;
-
+
+ private static final int HEADER_LENGTH = LONG_LENGTH + LONG_LENGTH + LONG_LENGTH + BOOLEAN_LENGTH;
+
private static final Logger log = Logger.getLogger(AbstractPacketCodec.class);
// Attributes ----------------------------------------------------
@@ -60,36 +61,14 @@
public void encode(P packet, RemotingBuffer buf) throws Exception
{
- assert packet != null;
- assert buf != null;
-
long correlationID = packet.getCorrelationID();
- // to optimize the size of the packets, if the targetID
- // or the callbackID are not set, they are encoded as null
- // Strings and will be correctly reset in decode(RemotingBuffer) method
- String targetID = packet.getTargetID();
- if (NO_ID_SET.equals(targetID))
- {
- targetID = null;
- }
- String callbackID = packet.getCallbackID();
- if (NO_ID_SET.equals(callbackID))
- {
- callbackID = null;
- }
- String executorID = packet.getExecutorID();
- if (NO_ID_SET.equals(executorID))
- {
- executorID = targetID;
- }
- int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID) + BOOLEAN_LENGTH;
+ long targetID = packet.getTargetID();
+ long executorID = packet.getExecutorID();
buf.put(packet.getType().byteValue());
- buf.putInt(headerLength);
buf.putLong(correlationID);
- buf.putNullableString(targetID);
- buf.putNullableString(callbackID);
- buf.putNullableString(executorID);
+ buf.putLong(targetID);
+ buf.putLong(executorID);
buf.putBoolean(packet.isOneWay());
encodeBody(packet, buf);
@@ -100,7 +79,8 @@
if (nullableString == null)
{
return 1; // NULL_STRING byte
- } else
+ }
+ else
{
return nullableString.getBytes().length + 2;// NOT_NULL_STRING +
// NULL_BYTE
@@ -116,72 +96,29 @@
public DecoderStatus decodable(RemotingBuffer buffer)
{
- if (buffer.remaining() < INT_LENGTH)
- {
- if (log.isTraceEnabled())
- log.trace("need more data to read header length");
- // can not read next int
- return NEED_DATA;
- }
- int headerLength = buffer.getInt();
- if (buffer.remaining() < headerLength)
- {
- if (log.isTraceEnabled())
- log.trace("need more data to read header");
- return NEED_DATA;
- }
- buffer.getLong(); // correlation ID
- try
- {
- buffer.getNullableString();
- } catch (CharacterCodingException e)
- {
- return NOT_OK;
- }
- try
- {
- buffer.getNullableString();
- } catch (CharacterCodingException e)
- {
- return NOT_OK;
- }
- try
- {
- buffer.getNullableString();
- } catch (CharacterCodingException e)
- {
- return NOT_OK;
- }
- buffer.getBoolean(); // oneWay boolean
- if (buffer.remaining() < INT_LENGTH)
- {
- if (log.isTraceEnabled())
- log.trace("need more data to read body length");
- // can not read next int
- return NEED_DATA;
- }
- int bodyLength = buffer.getInt();
- if (bodyLength == 0)
- {
- return OK;
- }
- if (buffer.remaining() < bodyLength)
- {
- if (log.isTraceEnabled())
- log.trace("need more data to read body");
- return NEED_DATA;
- }
- return OK;
+ if (buffer.remaining() < HEADER_LENGTH + INT_LENGTH)
+ {
+ return NEED_DATA;
+ }
+
+ buffer.getLong();
+ buffer.getLong();
+ buffer.getLong();
+ buffer.getBoolean();
+ int bodyLength = buffer.getInt();
+ if (buffer.remaining() < bodyLength)
+ {
+ return NEED_DATA;
+ }
+ return OK;
}
public Packet decode(RemotingBuffer wrapper) throws Exception
{
wrapper.get(); // skip message type
- wrapper.getInt(); // skip header length
long correlationID = wrapper.getLong();
- String targetID = wrapper.getNullableString();
- String callbackID = wrapper.getNullableString();
- String executorID = wrapper.getNullableString();
+ long targetID = wrapper.getLong();
+ long executorID = wrapper.getLong();
boolean oneWay = wrapper.getBoolean();
Packet packet = decodeBody(wrapper);
@@ -190,19 +127,10 @@
{
return null;
}
- if (targetID == null)
- targetID = NO_ID_SET;
- packet.setTargetID(targetID);
- if (callbackID == null)
- callbackID = NO_ID_SET;
- packet.setCallbackID(callbackID);
-
- if (executorID == null)
- executorID = targetID;
- packet.setExecutorID(executorID);
-
packet.setCorrelationID(correlationID);
+ packet.setTargetID(targetID);
+ packet.setExecutorID(executorID);
packet.setOneWay(oneWay);
return packet;
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,12 +35,11 @@
@Override
protected void encodeBody(ConnectionCreateSessionResponseMessage response, RemotingBuffer out) throws Exception
{
- String sessionID = response.getSessionID();
+ long sessionID = response.getSessionID();
- int bodyLength = sizeof(sessionID);
-
- out.putInt(bodyLength);
- out.putNullableString(sessionID);
+ out.putInt(LONG_LENGTH);
+
+ out.putLong(sessionID);
}
@Override
@@ -53,7 +52,7 @@
return null;
}
- String sessionID = in.getNullableString();
+ long sessionID = in.getLong();
return new ConnectionCreateSessionResponseMessage(sessionID);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -39,20 +39,20 @@
throws Exception
{
int version = request.getVersion();
- String remotingSessionID = request.getRemotingSessionID();
+ long remotingSessionID = request.getRemotingSessionID();
String clientVMID = request.getClientVMID();
String username = request.getUsername();
String password = request.getPassword();
int bodyLength = INT_LENGTH // version
- + sizeof(remotingSessionID)
+ + LONG_LENGTH +
+ sizeof(clientVMID)
+ sizeof(username)
+ sizeof(password);
out.putInt(bodyLength);
out.putInt(version);
- out.putNullableString(remotingSessionID);
+ out.putLong(remotingSessionID);
out.putNullableString(clientVMID);
out.putNullableString(username);
out.putNullableString(password);
@@ -68,7 +68,7 @@
return null;
}
int version = in.getInt();
- String remotingSessionID = in.getNullableString();
+ long remotingSessionID = in.getLong();
String clientVMID = in.getNullableString();
String username = in.getNullableString();
String password = in.getNullableString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -38,12 +38,10 @@
RemotingBuffer out)
throws Exception
{
- String id = response.getConnectionID();
+ long id = response.getConnectionTargetID();
- int bodyLength = sizeof(id);
-
- out.putInt(bodyLength);
- out.putNullableString(id);
+ out.putInt(LONG_LENGTH);
+ out.putLong(id);
}
@Override
@@ -55,7 +53,7 @@
{
return null;
}
- String id = in.getNullableString();
+ long id = in.getLong();
return new CreateConnectionResponse(id);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,10 +37,10 @@
protected void encodeBody(Ping packet, RemotingBuffer out)
throws Exception
{
- String clientSessionID = packet.getSessionID();
+ long clientSessionID = packet.getSessionID();
- out.putInt(sizeof(clientSessionID));
- out.putNullableString(clientSessionID);
+ out.putInt(LONG_LENGTH);
+ out.putLong(clientSessionID);
}
@Override
@@ -52,7 +52,7 @@
{
return null;
}
- String clientSessionID = in.getNullableString();
+ long clientSessionID = in.getLong();
return new Ping(clientSessionID);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -36,13 +36,13 @@
@Override
protected void encodeBody(Pong packet, RemotingBuffer out) throws Exception
{
- String sessionID = packet.getSessionID();
+ long sessionID = packet.getSessionID();
boolean sessionFailed = packet.isSessionFailed();
- int bodyLength = sizeof(sessionID) + BOOLEAN_LENGTH;
+ int bodyLength = LONG_LENGTH + BOOLEAN_LENGTH;
out.putInt(bodyLength);
- out.putNullableString(sessionID);
+ out.putLong(sessionID);
out.putBoolean(sessionFailed);
}
@@ -54,7 +54,7 @@
{
return null;
}
- String sessionID = in.getNullableString();
+ long sessionID = in.getLong();
boolean sessionFailed = in.getBoolean();
return new Pong(sessionID, sessionFailed);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,12 +37,10 @@
protected void encodeBody(SessionCreateBrowserResponseMessage response,
RemotingBuffer out) throws Exception
{
- String browserID = response.getBrowserID();
+ long browserID = response.getBrowserTargetID();
- int bodyLength = sizeof(browserID);
-
- out.putInt(bodyLength);
- out.putNullableString(browserID);
+ out.putInt(LONG_LENGTH);
+ out.putLong(browserID);
}
@Override
@@ -55,7 +53,7 @@
return null;
}
- String browserID = in.getNullableString();
+ long browserID = in.getLong();
return new SessionCreateBrowserResponseMessage(browserID);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,14 +37,14 @@
protected void encodeBody(SessionCreateConsumerResponseMessage response,
RemotingBuffer out) throws Exception
{
- String consumerID = response.getConsumerID();
+ long consumerID = response.getConsumerTargetID();
int windowSize = response.getWindowSize();
- int bodyLength = sizeof(consumerID) + INT_LENGTH;
+ int bodyLength = LONG_LENGTH + INT_LENGTH;
out.putInt(bodyLength);
- out.putNullableString(consumerID);
+ out.putLong(consumerID);
out.putInt(windowSize);
}
@@ -58,7 +58,7 @@
return null;
}
- String consumerID = in.getNullableString();
+ long consumerID = in.getLong();
int windowSize = in.getInt();
return new SessionCreateConsumerResponseMessage(consumerID, windowSize);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -41,12 +41,12 @@
protected void encodeBody(SessionCreateProducerResponseMessage response,
RemotingBuffer out) throws Exception
{
- String producerID = response.getProducerID();
+ long producerID = response.getProducerTargetID();
- int bodyLength = sizeof(producerID) + 2 * INT_LENGTH;
+ int bodyLength = LONG_LENGTH + 2 * INT_LENGTH;
out.putInt(bodyLength);
- out.putNullableString(producerID);
+ out.putLong(producerID);
out.putInt(response.getWindowSize());
out.putInt(response.getMaxRate());
}
@@ -61,7 +61,7 @@
return null;
}
- String producerID = in.getNullableString();
+ long producerID = in.getLong();
int windowSize = in.getInt();
int maxRate = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,18 +29,18 @@
private INVMSession session;
- private PacketDispatcher clientDispatcher;
- private PacketDispatcher serverDispatcher;
-
+ private final long id;
+
+ private final PacketDispatcher clientDispatcher;
+ private final PacketDispatcher serverDispatcher;
+
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public INVMConnector(PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
+ public INVMConnector(final long id, final PacketDispatcher clientDispatcher, final PacketDispatcher serverDispatcher)
{
- assert clientDispatcher != null;
- assert serverDispatcher != null;
-
+ this.id = id;
this.clientDispatcher = clientDispatcher;
this.serverDispatcher = serverDispatcher;
}
@@ -52,7 +52,7 @@
public NIOSession connect()
throws IOException
{
- this.session = new INVMSession(clientDispatcher, serverDispatcher);
+ this.session = new INVMSession(id, clientDispatcher, serverDispatcher);
return session;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,15 +6,13 @@
*/
package org.jboss.messaging.core.remoting.impl.invm;
-import static java.util.UUID.randomUUID;
-
import java.util.concurrent.TimeUnit;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -28,10 +26,10 @@
// Attributes ----------------------------------------------------
- private String id;
+ private final long id;
private long correlationCounter;
- private PacketDispatcher clientDispatcher;
- private PacketDispatcher serverDispatcher;
+ private final PacketDispatcher clientDispatcher;
+ private final PacketDispatcher serverDispatcher;
private boolean connected;
// Static --------------------------------------------------------
@@ -39,12 +37,12 @@
// Constructors --------------------------------------------------
- public INVMSession(PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
+ public INVMSession(final long id, final PacketDispatcher clientDispatcher, final PacketDispatcher serverDispatcher)
{
assert clientDispatcher != null;
assert serverDispatcher != null;
- this.id = randomUUID().toString();
+ this.id = id;
this.correlationCounter = 0;
this.clientDispatcher = clientDispatcher;
this.serverDispatcher = serverDispatcher;
@@ -61,7 +59,7 @@
// NIOSession implementation -------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
@@ -84,7 +82,7 @@
clientDispatcher.dispatch(response, null);
}
- public String getSessionID()
+ public long getSessionID()
{
return getID();
}
@@ -126,7 +124,7 @@
}
}
- public String getSessionID()
+ public long getSessionID()
{
return getID();
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -30,17 +30,17 @@
// KeepAliveFactory implementation -------------------------------
- public Ping ping(String clientSessionID)
+ public Ping ping(long clientSessionID)
{
return new Ping(clientSessionID);
}
- public boolean isPing(String sessionID, Object message)
+ public boolean isPing(long sessionID, Object message)
{
return (message instanceof Ping);
}
- public Pong pong(String sessionID, Ping ping)
+ public Pong pong(long sessionID, Ping ping)
{
return new Pong(sessionID, false);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,9 +37,9 @@
import org.jboss.messaging.core.remoting.KeepAliveFactory;
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
/**
@@ -151,7 +151,7 @@
throw new IOException("Cannot connect to " + address.toString());
}
this.session = future.getSession();
- Packet packet = new Ping(Long.toString(session.getId()));
+ Packet packet = new Ping(session.getId());
session.write(packet);
return new MinaSession(session);
@@ -283,7 +283,8 @@
public void sessionDestroyed(IoSession session)
{
RemotingException re =
- new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session has been destroyed", Long.toString(session.getId()));
+ new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session has been destroyed",
+ session.getId());
fireFailure(re);
}
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -14,10 +14,10 @@
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.filter.codec.demux.MessageDecoder;
import org.apache.mina.filter.codec.demux.MessageDecoderResult;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.DecoderStatus;
import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -13,9 +13,9 @@
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.apache.mina.filter.codec.demux.MessageEncoder;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,8 +6,8 @@
*/
package org.jboss.messaging.core.remoting.impl.mina;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
@@ -16,17 +16,17 @@
import org.apache.mina.filter.reqres.Response;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketHandlerRegistrationListener;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
import org.jboss.messaging.util.OrderedExecutorFactory;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
* @version <tt>$Revision$</tt>
*
@@ -43,16 +43,18 @@
private FailureNotifier failureNotifier;
- private boolean closeSessionOnExceptionCaught;
+ private final boolean closeSessionOnExceptionCaught;
- private OrderedExecutorFactory executorFactory;
+ private final OrderedExecutorFactory executorFactory;
- private Map<String, Executor> executors = new HashMap<String, Executor>();
+ //Note! must use ConcurrentMap here to avoid race condition
+ private final ConcurrentMap<Long, Executor> executors = new ConcurrentHashMap<Long, Executor>();
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public MinaHandler(PacketDispatcher dispatcher, ExecutorService executorService, FailureNotifier failureNotifier, boolean closeSessionOnExceptionCaught)
+ public MinaHandler(final PacketDispatcher dispatcher, final ExecutorService executorService,
+ final FailureNotifier failureNotifier, final boolean closeSessionOnExceptionCaught)
{
assert dispatcher!= null;
assert executorService != null;
@@ -69,12 +71,12 @@
// PacketHandlerRegistrationListener implementation --------------
- public void handlerRegistered(String handlerID)
+ public void handlerRegistered(final long handlerID)
{
// do nothing on registration
}
- public void handlerUnregistered(String handlerID)
+ public void handlerUnregistered(final long handlerID)
{
executors.remove(handlerID);
}
@@ -82,15 +84,16 @@
// IoHandlerAdapter overrides ------------------------------------
@Override
- public void exceptionCaught(IoSession session, Throwable cause)
+ public void exceptionCaught(final IoSession session, final Throwable cause)
throws Exception
{
log.error("caught exception " + cause + " for session " + session, cause);
if (failureNotifier != null)
{
- String serverSessionID = Long.toString(session.getId());
- RemotingException re = new RemotingException(MessagingException.INTERNAL_ERROR, "unexpected exception", serverSessionID);
+ long serverSessionID = session.getId();
+ RemotingException re =
+ new RemotingException(MessagingException.INTERNAL_ERROR, "unexpected exception", serverSessionID);
re.initCause(cause);
failureNotifier.fireFailure(re);
}
@@ -128,16 +131,20 @@
}
final Packet packet = (Packet) message;
- String executorID = packet.getExecutorID();
+ long executorID = packet.getExecutorID();
- if (PacketImpl.NO_ID_SET.equals(executorID))
- throw new IllegalArgumentException("executor ID not set for " + packet);
-
Executor executor = executors.get(executorID);
if (executor == null)
{
- executor = this.executorFactory.getOrderedExecutor();
- executors.put(executorID, executor);
+ executor = executorFactory.getOrderedExecutor();
+
+ Executor oldExecutor = executors.putIfAbsent(executorID, executor);
+
+ if (oldExecutor != null)
+ {
+ //Avoid race
+ executor = oldExecutor;
+ }
}
executor.execute(new Runnable()
@@ -146,7 +153,7 @@
{
try
{
- messageReceived0(session, packet);
+ messageReceivedInternal(session, packet);
} catch (Exception e)
{
log.error("unexpected error", e);
@@ -162,7 +169,7 @@
// Private -------------------------------------------------------
- private void messageReceived0(final IoSession session, Packet packet)
+ private void messageReceivedInternal(final IoSession session, Packet packet)
throws Exception
{
PacketSender sender = new PacketSender()
@@ -173,9 +180,9 @@
session.write(p);
}
- public String getSessionID()
+ public long getSessionID()
{
- return Long.toString(session.getId());
+ return session.getId();
}
public String getRemoteAddress()
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -7,11 +7,10 @@
package org.jboss.messaging.core.remoting.impl.mina;
import static org.apache.mina.filter.reqres.ResponseType.WHOLE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_CORRELATION_ID;
import org.apache.mina.filter.reqres.ResponseInspector;
import org.apache.mina.filter.reqres.ResponseType;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -39,10 +38,16 @@
return null;
}
Packet packet = (Packet) message;
- if (packet.getCorrelationID() != NO_CORRELATION_ID)
- return packet.getCorrelationID();
+ long id = packet.getCorrelationID();
+
+ if (id == -1)
+ {
+ return null;
+ }
else
- return null;
+ {
+ return id;
+ }
}
public ResponseType getResponseType(Object message)
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -53,19 +53,17 @@
public Object getRequest(IoSession session)
{
- return innerFactory.ping(Long.toString(session.getId()));
+ return innerFactory.ping(session.getId());
}
public Object getResponse(IoSession session, Object request)
{
- assert request instanceof Ping;
-
- return innerFactory.pong(Long.toString(session.getId()), (Ping) request);
+ return innerFactory.pong(session.getId(), (Ping) request);
}
public boolean isRequest(IoSession session, Object request)
{
- return innerFactory.isPing(Long.toString(session.getId()), request);
+ return innerFactory.isPing(session.getId(), request);
}
public boolean isResponse(IoSession session, Object response)
@@ -78,8 +76,7 @@
// FIXME better error code
notifier.fireFailure(new RemotingException(
MessagingException.CONNECTION_TIMEDOUT,
- "Session has failed on the server", Long.toString(session
- .getId())));
+ "Session has failed on the server", session.getId()));
}
return true;
} else
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -227,8 +227,8 @@
if (me instanceof RemotingException)
{
RemotingException re = (RemotingException) me;
- String sessionID = re.getSessionID();
- String clientSessionID = factory.getSessions().get(sessionID);
+ long sessionID = re.getSessionID();
+ long clientSessionID = factory.getSessions().get(sessionID);
for (FailureListener listener : listeners)
{
listener.onFailure(new RemotingException(re.getCode(), re.getMessage(), clientSessionID));
@@ -281,7 +281,7 @@
public void sessionDestroyed(IoSession session)
{
- String sessionID = Long.toString(session.getId());
+ long sessionID = session.getId();
if (factory.getSessions().containsKey(sessionID))
{
fireFailure(new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session destroyed", sessionID));
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
import org.apache.mina.filter.reqres.Request;
import org.apache.mina.filter.reqres.Response;
import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -44,9 +44,9 @@
// Public --------------------------------------------------------
- public String getID()
+ public long getID()
{
- return Long.toString(session.getId());
+ return session.getId();
}
public void write(Object object)
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -68,6 +68,7 @@
import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.BytesPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionMessageCodec;
@@ -117,7 +118,6 @@
import org.jboss.messaging.core.remoting.impl.codec.SessionXAStartMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.TextPacketCodec;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -34,7 +34,7 @@
/**
* Key = server session ID Value = client session ID
*/
- private Map<String, String> sessions = new ConcurrentHashMap<String, String>();
+ private Map<Long, Long> sessions = new ConcurrentHashMap<Long, Long>();
// Static --------------------------------------------------------
@@ -44,24 +44,26 @@
// KeepAliveFactory implementation -------------------------------
- public Ping ping(String sessionID)
+ public Ping ping(long sessionID)
{
return new Ping(sessionID);
}
- public boolean isPing(String sessionID, Object message)
+ public boolean isPing(long sessionID, Object message)
{
if (!(message instanceof Ping))
{
return false;
- } else
+ }
+ else
{
Ping ping = (Ping) message;
- String clientSessionID = ping.getSessionID();
- if (clientSessionID.equals(sessionID))
+ long clientSessionID = ping.getSessionID();
+ if (clientSessionID == sessionID)
{
return false;
- } else
+ }
+ else
{
if (log.isDebugEnabled())
log.debug("associated server session " + sessionID
@@ -72,13 +74,13 @@
}
}
- public Pong pong(String sessionID, Ping ping)
+ public Pong pong(long sessionID, Ping ping)
{
- String clientSessionID = ping.getSessionID();
+ long clientSessionID = ping.getSessionID();
return new Pong(sessionID, sessions.containsKey(clientSessionID));
}
- public Map<String, String> getSessions()
+ public Map<Long, Long> getSessions()
{
return sessions;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -20,33 +19,31 @@
// Attributes ----------------------------------------------------
- private final String sessionID;
+ private final long sessionTargetID;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public ConnectionCreateSessionResponseMessage(final String sessionID)
+ public ConnectionCreateSessionResponseMessage(final long sessionTargetID)
{
super(PacketType.CONN_CREATESESSION_RESP);
- assertValidID(sessionID);
-
- this.sessionID = sessionID;
+ this.sessionTargetID = sessionTargetID;
}
// Public --------------------------------------------------------
- public String getSessionID()
+ public long getSessionID()
{
- return sessionID;
+ return sessionTargetID;
}
@Override
public String toString()
{
- return getParentString() + ", sessionID=" + sessionID
+ return getParentString() + ", sessionTargetID=" + sessionTargetID
+ "]";
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
/**
@@ -23,7 +22,7 @@
// Attributes ----------------------------------------------------
private final int version;
- private final String remotingSessionID;
+ private final long remotingSessionID;
private final String clientVMID;
private final String username;
private final String password;
@@ -33,13 +32,10 @@
// Constructors --------------------------------------------------
public CreateConnectionRequest(final int version,
- final String remotingSessionID, final String clientVMID, final String username, final String password)
+ final long remotingSessionID, final String clientVMID, final String username, final String password)
{
super(CREATECONNECTION);
- assertValidID(remotingSessionID);
- assertValidID(clientVMID);
-
this.version = version;
this.remotingSessionID = remotingSessionID;
this.clientVMID = clientVMID;
@@ -54,7 +50,7 @@
return version;
}
- public String getRemotingSessionID()
+ public long getRemotingSessionID()
{
return remotingSessionID;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION_RESP;
/**
@@ -21,32 +20,30 @@
// Attributes ----------------------------------------------------
- private final String connectionID;
+ private final long connectionTargetID;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public CreateConnectionResponse(final String connectionID)
+ public CreateConnectionResponse(final long connectionTargetID)
{
super(CREATECONNECTION_RESP);
- assertValidID(connectionID);
-
- this.connectionID = connectionID;
+ this.connectionTargetID = connectionTargetID;
}
// Public --------------------------------------------------------
- public String getConnectionID()
+ public long getConnectionTargetID()
{
- return connectionID;
+ return connectionTargetID;
}
@Override
public String toString()
{
- return getParentString() + ", connectionID" + connectionID + "]";
+ return getParentString() + ", connectionID" + connectionTargetID + "]";
}
// Package protected ---------------------------------------------
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -1,43 +0,0 @@
-/*
- * JBoss, the OpenSource J2EE webOS
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-
-package org.jboss.messaging.core.remoting.impl.wireformat;
-
-
-public interface Packet
-{
- // Public --------------------------------------------------------
-
- void setCorrelationID(long correlationID);
-
- long getCorrelationID();
-
- PacketType getType();
-
- String getTargetID();
-
- void setTargetID(String targetID);
-
- String getCallbackID();
-
- void setCallbackID(String callbackID);
-
- String getExecutorID();
-
- void setExecutorID(String executorID);
-
- void setOneWay(boolean oneWay);
-
- boolean isOneWay();
-
- void normalize(Packet other);
-
- /**
- * An AbstractPacket is a request if it has a target ID and a correlation ID
- */
- public boolean isRequest();
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,9 +6,8 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
-
import org.jboss.messaging.core.client.impl.RemotingConnection;
+import org.jboss.messaging.core.remoting.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -17,141 +16,120 @@
*/
public class PacketImpl implements Packet
{
- // Constants -----------------------------------------------------
+ // Constants -----------------------------------------------------
- public static final String NO_ID_SET = "NO_ID_SET";
+ public static final long NO_ID_SET = -1L;
- public static final long NO_CORRELATION_ID = -1L;
+ // Attributes ----------------------------------------------------
- // Attributes ----------------------------------------------------
+ private long correlationID = NO_ID_SET;
- private long correlationID = NO_CORRELATION_ID;
+ private long targetID = NO_ID_SET;
- private String targetID = NO_ID_SET;
+ private long executorID = NO_ID_SET;
- private String callbackID = NO_ID_SET;
+ private final PacketType type;
- String executorID = NO_ID_SET;
+ /**
+ * <code>oneWay</code> is <code>true</code> when the packet is sent "one way"
+ * by the client which does not expect any response to it.
+ *
+ * @see RemotingConnection#sendOneWay(AbstractPacket)
+ */
+ private boolean oneWay = false;
- private final PacketType type;
+ // Static --------------------------------------------------------
- /**
- * <code>oneWay</code> is <code>true</code> when the packet is sent "one way"
- * by the client which does not expect any response to it.
- *
- * @see RemotingConnection#sendOneWay(AbstractPacket)
- */
- private boolean oneWay = false;
-
- // Static --------------------------------------------------------
+ // Constructors --------------------------------------------------
- // Constructors --------------------------------------------------
+ public PacketImpl(PacketType type)
+ {
+ assert type != null;
- public PacketImpl(PacketType type)
- {
- assert type != null;
-
- this.type = type;
- }
+ this.type = type;
+ }
- // Public --------------------------------------------------------
+ // Public --------------------------------------------------------
- public PacketType getType()
- {
- return type;
- }
+ public PacketType getType()
+ {
+ return type;
+ }
- public void setCorrelationID(long correlationID)
- {
- this.correlationID = correlationID;
- }
+ public void setCorrelationID(long correlationID)
+ {
+ this.correlationID = correlationID;
+ }
- public long getCorrelationID()
- {
- return correlationID;
- }
+ public long getCorrelationID()
+ {
+ return correlationID;
+ }
- public String getTargetID()
- {
- return targetID;
- }
+ public long getTargetID()
+ {
+ return targetID;
+ }
- public void setTargetID(String targetID)
- {
- assertValidID(targetID);
+ public void setTargetID(long targetID)
+ {
+ this.targetID = targetID;
+ }
- this.targetID = targetID;
- }
+ public long getExecutorID()
+ {
+ return executorID;
+ }
- public void setCallbackID(String callbackID)
- {
- assertValidID(callbackID);
+ public void setExecutorID(long executorID)
+ {
+ this.executorID = executorID;
+ }
- this.callbackID = callbackID;
- }
+ public void setOneWay(boolean oneWay)
+ {
+ this.oneWay = oneWay;
+ }
- public String getCallbackID()
- {
- return callbackID;
- }
-
- public String getExecutorID()
- {
- return executorID;
- }
-
- public void setExecutorID(String executorID)
- {
- assertValidID(executorID);
-
- this.executorID = executorID;
- }
+ public boolean isOneWay()
+ {
+ return oneWay;
+ }
- public void setOneWay(boolean oneWay)
- {
- this.oneWay = oneWay;
- }
+ public void normalize(Packet other)
+ {
+ assert other != null;
- public boolean isOneWay()
- {
- return oneWay;
- }
-
- public void normalize(Packet other)
- {
- assert other != null;
+ setCorrelationID(other.getCorrelationID());
+ }
- setCorrelationID(other.getCorrelationID());
- setTargetID(other.getCallbackID());
- }
+ /**
+ * An AbstractPacket is a request if it has a target ID and a correlation ID
+ */
+ public boolean isRequest()
+ {
+ return targetID != NO_ID_SET && correlationID != NO_ID_SET;
+ }
- /**
- * An AbstractPacket is a request if it has a target ID and a correlation ID
- */
- public boolean isRequest()
- {
- return targetID != NO_ID_SET && correlationID != NO_CORRELATION_ID;
- }
+ @Override
+ public String toString()
+ {
+ return getParentString() + "]";
+ }
- @Override
- public String toString()
- {
- return getParentString() + "]";
- }
+ // Package protected ---------------------------------------------
- // Package protected ---------------------------------------------
+ protected String getParentString()
+ {
+ return "PACKET[type=" + type
+ + ", correlationID=" + correlationID + ", targetID=" + targetID
+ + ", executorID=" + executorID + ", oneWay=" + oneWay;
+ }
- protected String getParentString()
- {
- return "PACKET[type=" + type
- + ", correlationID=" + correlationID + ", targetID=" + targetID
- + ", callbackID=" + callbackID + ", executorID=" + executorID + ", oneWay=" + oneWay;
- }
+ // Protected -----------------------------------------------------
- // Protected -----------------------------------------------------
+ // Private -------------------------------------------------------
- // Private -------------------------------------------------------
+ // Inner classes -------------------------------------------------
- // Inner classes -------------------------------------------------
-
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
/**
@@ -21,24 +20,22 @@
// Attributes ----------------------------------------------------
- private final String sessionID;
+ private final long sessionID;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public Ping(final String sessionID)
+ public Ping(final long sessionID)
{
super(PING);
- assertValidID(sessionID);
-
this.sessionID = sessionID;
}
// Public --------------------------------------------------------
- public String getSessionID()
+ public long getSessionID()
{
return sessionID;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
/**
@@ -21,7 +20,7 @@
// Attributes ----------------------------------------------------
- private final String sessionID;
+ private final long sessionID;
private final boolean sessionFailed;
@@ -29,19 +28,17 @@
// Constructors --------------------------------------------------
- public Pong(final String sessionID, final boolean sessionFailed)
+ public Pong(final long sessionID, final boolean sessionFailed)
{
super(PONG);
- assertValidID(sessionID);
-
this.sessionID = sessionID;
this.sessionFailed = sessionFailed;
}
// Public --------------------------------------------------------
- public String getSessionID()
+ public long getSessionID()
{
return sessionID;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
*/
package org.jboss.messaging.core.remoting.impl.wireformat;
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
/**
@@ -22,32 +21,30 @@
// Attributes ----------------------------------------------------
- private final String browserID;
+ private final long browserTargetID;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
- public SessionCreateBrowserResponseMessage(final String browserID)
+ public SessionCreateBrowserResponseMessage(final long browserTargetID)
{
super(SESS_CREATEBROWSER_RESP);
- assertValidID(browserID);
-
- this.browserID = browserID;
+ this.browserTargetID = browserTargetID;
}
// Public --------------------------------------------------------
- public String getBrowserID()
+ public long getBrowserTargetID()
{
- return browserID;
+ return browserTargetID;
}
@Override
public String toString()
{
- return getParentString() + ", browserID=" + browserID + "]";
+ return getParentString() + ", browserTargetID=" + browserTargetID + "]";
}
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
-import org.jboss.messaging.core.remoting.impl.Assert;
-
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -22,7 +20,7 @@
// Attributes ----------------------------------------------------
- private final String consumerID;
+ private final long consumerTargetID;
private final int windowSize;
@@ -30,22 +28,20 @@
// Constructors --------------------------------------------------
- public SessionCreateConsumerResponseMessage(final String consumerID, final int windowSize)
+ public SessionCreateConsumerResponseMessage(final long consumerID, final int windowSize)
{
super(SESS_CREATECONSUMER_RESP);
- Assert.assertValidID(consumerID);
-
- this.consumerID = consumerID;
+ this.consumerTargetID = consumerID;
this.windowSize = windowSize;
}
// Public --------------------------------------------------------
- public String getConsumerID()
+ public long getConsumerTargetID()
{
- return consumerID;
+ return consumerTargetID;
}
public int getWindowSize()
@@ -57,7 +53,7 @@
public String toString()
{
StringBuffer buf = new StringBuffer(getParentString());
- buf.append(", consumerID=" + consumerID);
+ buf.append(", consumerTargetID=" + consumerTargetID);
buf.append(", windowSize=" + windowSize);
buf.append("]");
return buf.toString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -20,7 +20,7 @@
// Attributes ----------------------------------------------------
- private final String producerID;
+ private final long producerTargetID;
private final int windowSize;
@@ -30,11 +30,11 @@
// Constructors --------------------------------------------------
- public SessionCreateProducerResponseMessage(final String producerID, final int windowSize, final int maxRate)
+ public SessionCreateProducerResponseMessage(final long producerTargetID, final int windowSize, final int maxRate)
{
super(SESS_CREATEPRODUCER_RESP);
- this.producerID = producerID;
+ this.producerTargetID = producerTargetID;
this.windowSize = windowSize;
@@ -43,9 +43,9 @@
// Public --------------------------------------------------------
- public String getProducerID()
+ public long getProducerTargetID()
{
- return producerID;
+ return producerTargetID;
}
public int getWindowSize()
@@ -62,7 +62,7 @@
public String toString()
{
StringBuffer buf = new StringBuffer(getParentString());
- buf.append(", producerID=" + producerID);
+ buf.append(", producerTargetID=" + producerTargetID);
buf.append(", windowSize=" + windowSize);
buf.append(", maxRate=" + maxRate);
buf.append("]");
Modified: trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -40,13 +40,13 @@
public interface ConnectionManager extends MessagingComponent
{
void registerConnection(String clientVMID,
- String remotingClientSessionID, ServerConnection endpoint);
+ long remotingClientSessionID, ServerConnection endpoint);
/**
* @param ServerConnection
* @return null if there is no such connection.
*/
- ServerConnection unregisterConnection(String remotingClientSessionID, ServerConnection ServerConnection);
+ ServerConnection unregisterConnection(long remotingClientSessionID, ServerConnection ServerConnection);
/**
* Returns a list of active connection endpoints currently maintained by an instance of this
Modified: trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -88,8 +88,10 @@
void setPostOffice(PostOffice postOffice);
CreateConnectionResponse createConnection(String username, String password,
- String remotingClientSessionID, String clientVMID,
+ long remotingClientSessionID, String clientVMID,
String clientAddress) throws Exception;
DeploymentManager getDeploymentManager();
+
+ ObjectIDGenerator getObjectIDGenerator();
}
Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,7 +37,7 @@
*/
public interface ServerConnection
{
- String getID();
+ long getID();
ConnectionCreateSessionResponseMessage createSession(boolean xa, boolean autoCommitSends, boolean autoCommitAcks,
PacketSender sender) throws Exception;
@@ -54,7 +54,7 @@
String getPassword();
- void removeSession(String sessionID) throws Exception;
+ void removeSession(ServerSession session) throws Exception;
void addTemporaryQueue(Queue queue);
Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -31,7 +31,7 @@
*/
public interface ServerConsumer extends Consumer
{
- String getID();
+ long getID();
void close() throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -11,7 +11,7 @@
*/
public interface ServerProducer
{
- String getID();
+ long getID();
void close() throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerSession.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerSession.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,6 +35,7 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
+import org.jboss.messaging.core.server.impl.ServerBrowserImpl;
/**
*
@@ -45,13 +46,13 @@
*/
public interface ServerSession
{
- String getID();
+ long getID();
- void removeBrowser(String browserID) throws Exception;
+ void removeBrowser(ServerBrowserImpl browser) throws Exception;
- void removeConsumer(String consumerID) throws Exception;
+ void removeConsumer(ServerConsumer consumer) throws Exception;
- void removeProducer(String producerID) throws Exception;
+ void removeProducer(ServerProducer producer) throws Exception;
void close() throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -56,26 +56,26 @@
// Attributes -----------------------------------------------------------------------------------
- private Map<String /* remoting session ID */, List<ServerConnection>> endpoints;
+ private Map<Long /* remoting session ID */, List<ServerConnection>> endpoints;
private Set<ServerConnection> activeServerConnections;
// the clients maps is for information only: to better identify the clients of
// jboss messaging using their VM ID
- private Map<String /* remoting session id */, String /* client vm id */> clients;
+ private Map<Long /* remoting session id */, String /* client vm id */> clients;
// Constructors ---------------------------------------------------------------------------------
public ConnectionManagerImpl()
{
- endpoints = new HashMap<String, List<ServerConnection>>();
+ endpoints = new HashMap<Long, List<ServerConnection>>();
activeServerConnections = new HashSet<ServerConnection>();
- clients = new HashMap<String, String>();
+ clients = new HashMap<Long, String>();
}
// ConnectionManager implementation -------------------------------------------------------------
- public synchronized void registerConnection(String clientVMID, String remotingClientSessionID,
+ public synchronized void registerConnection(String clientVMID, long remotingClientSessionID,
ServerConnection endpoint)
{
List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
@@ -95,7 +95,7 @@
log.debug("registered connection " + endpoint + " as " + remotingClientSessionID);
}
- public synchronized ServerConnection unregisterConnection(String remotingClientSessionID,
+ public synchronized ServerConnection unregisterConnection(long remotingClientSessionID,
ServerConnection endpoint)
{
List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
@@ -171,7 +171,7 @@
* client to this server, false if the failure has been detected while trying to send a
* callback from this server to the client.
*/
- private synchronized void handleClientFailure(String remotingSessionID, boolean clientToServer)
+ private synchronized void handleClientFailure(long remotingSessionID, boolean clientToServer)
{
String clientVMID = clients.get(remotingSessionID);
@@ -193,10 +193,8 @@
dump();
}
- private synchronized void closeConsumers(String remotingClientSessionID)
+ private synchronized void closeConsumers(long remotingClientSessionID)
{
- assert remotingClientSessionID != null;
-
List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
// the connection endpoints are copied in a new list to avoid concurrent modification exception
List<ServerConnection> copy;
@@ -231,9 +229,9 @@
{
buff.append(" No registered sessions\n");
}
- for (Entry<String, String> client : clients.entrySet())
+ for (Entry<Long, String> client : clients.entrySet())
{
- String remotingSessionID = client.getKey();
+ long remotingSessionID = client.getKey();
String clientVMID = client.getValue();
buff.append(" ").append(remotingSessionID).append(" <----> ").append(clientVMID).append("\n");
}
@@ -242,7 +240,7 @@
{
buff.append(" No registered endpoints\n");
}
- for (Entry<String, List<ServerConnection>> entry : endpoints.entrySet())
+ for (Entry<Long, List<ServerConnection>> entry : endpoints.entrySet())
{
List<ServerConnection> connectionEndpoints = entry.getValue();
buff.append(" " + entry.getKey() + "----->\n");
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -42,16 +42,16 @@
private final MessageReference reference;
- private final String sessionID;
+ private final long sessionID;
- private final String consumerID;
+ private final long consumerID;
private final long deliveryID;
private final PacketSender sender;
public DeliveryImpl(final MessageReference reference,
- final String sessionID, final String consumerID,
+ final long sessionID, final long consumerID,
final long deliveryID, final PacketSender sender)
{
this.reference = reference;
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -39,9 +39,9 @@
import org.jboss.messaging.core.persistence.impl.nullpm.NullStorageManager;
import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.postoffice.impl.PostOfficeImpl;
+import org.jboss.messaging.core.remoting.ConnectorRegistrySingleton;
import org.jboss.messaging.core.remoting.Interceptor;
import org.jboss.messaging.core.remoting.RemotingService;
-import org.jboss.messaging.core.remoting.ConnectorRegistrySingleton;
import org.jboss.messaging.core.remoting.impl.mina.MinaService;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
import org.jboss.messaging.core.security.JBMSecurityManager;
@@ -51,6 +51,7 @@
import org.jboss.messaging.core.security.impl.SecurityStoreImpl;
import org.jboss.messaging.core.server.ConnectionManager;
import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
import org.jboss.messaging.core.server.QueueFactory;
import org.jboss.messaging.core.server.ServerConnection;
import org.jboss.messaging.core.settings.HierarchicalRepository;
@@ -97,6 +98,7 @@
private Deployer queueSettingsDeployer;
private JBMSecurityManager securityManager = new JBMSecurityManagerImpl(true);
private DeploymentManager deploymentManager = new FileDeploymentManager();
+ private ObjectIDGenerator objectIDGenerator = new ObjectIDGeneratorImpl();
// plugins
@@ -329,7 +331,7 @@
}
public CreateConnectionResponse createConnection(final String username, final String password,
- final String remotingClientSessionID, final String clientVMID,
+ final long remotingClientSessionID, final String clientVMID,
final String clientAddress)
throws Exception
{
@@ -347,13 +349,19 @@
remotingClientSessionID, clientVMID, clientAddress,
remotingService.getDispatcher(), resourceManager, storageManager,
queueSettingsRepository,
- postOffice, securityStore, connectionManager);
+ postOffice, securityStore, connectionManager,
+ objectIDGenerator);
remotingService.getDispatcher().register(new ServerConnectionPacketHandler(connection));
return new CreateConnectionResponse(connection.getID());
}
-
+
+ public ObjectIDGenerator getObjectIDGenerator()
+ {
+ return this.objectIDGenerator;
+ }
+
// Public ---------------------------------------------------------------------------------------
// Package protected ----------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -24,11 +24,10 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.server.MessagingServer;
@@ -58,9 +57,10 @@
* By switching to Long, we could reduce the size of the packet and maybe
* increase the performance (to check after some performance tests)
*/
- public String getID()
+ public long getID()
{
- return ClientConnectionFactoryImpl.id;
+ //0 is reserved for this handler
+ return 0;
}
public Packet doHandle(final Packet packet, final PacketSender sender) throws Exception
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -38,10 +38,10 @@
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageResponseMessage;
@@ -69,7 +69,7 @@
// Attributes -----------------------------------------------------------------------------------
- private final String id;
+ private final long id;
private final ServerSession session;
private final Queue destination;
private final Filter filter;
@@ -77,11 +77,11 @@
// Constructors ---------------------------------------------------------------------------------
- ServerBrowserImpl(ServerSession session,
- Queue destination, String messageFilter) throws Exception
+ ServerBrowserImpl(final long id, final ServerSession session,
+ final Queue destination, final String messageFilter) throws Exception
{
this.session = session;
- id = UUID.randomUUID().toString();
+ this.id = id;
this.destination = destination;
@@ -97,7 +97,7 @@
// BrowserEndpoint implementation ---------------------------------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
@@ -162,7 +162,7 @@
{
iterator = null;
- session.removeBrowser(id);
+ session.removeBrowser(this);
log.trace(this + " closed");
}
@@ -203,8 +203,7 @@
private class ServerBrowserEndpointHandler extends ServerPacketHandlerSupport
{
-
- public String getID()
+ public long getID()
{
return ServerBrowserImpl.this.id;
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,20 +21,20 @@
*/
package org.jboss.messaging.core.server.impl;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.persistence.StorageManager;
import org.jboss.messaging.core.postoffice.Binding;
import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
import org.jboss.messaging.core.security.SecurityStore;
import org.jboss.messaging.core.server.ConnectionManager;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerConnection;
import org.jboss.messaging.core.server.ServerSession;
@@ -66,13 +66,13 @@
// Attributes -----------------------------------------------------------------------------------
- private final String id;
+ private final long id;
private final String username;
private final String password;
- private final String remotingClientSessionID;
+ private final long remotingClientSessionID;
private final String clientAddress;
@@ -89,10 +89,12 @@
private final SecurityStore securityStore;
private final ConnectionManager connectionManager;
+
+ private final ObjectIDGenerator objectIDGenerator;
private final long createdTime;
- private final ConcurrentMap<String, ServerSession> sessions = new ConcurrentHashMap<String, ServerSession>();
+ private final Set<ServerSession> sessions = new ConcurrentHashSet<ServerSession>();
private final Set<Queue> temporaryQueues = new ConcurrentHashSet<Queue>();
@@ -104,16 +106,17 @@
// Constructors ---------------------------------------------------------------------------------
public ServerConnectionImpl(final String username, final String password,
- final String remotingClientSessionID, final String jmsClientVMID,
+ final long remotingClientSessionID, final String jmsClientVMID,
final String clientAddress,
final PacketDispatcher dispatcher,
final ResourceManager resourceManager,
final StorageManager persistenceManager,
final HierarchicalRepository<QueueSettings> queueSettingsRepository,
final PostOffice postOffice, final SecurityStore securityStore,
- final ConnectionManager connectionManager)
+ final ConnectionManager connectionManager,
+ final ObjectIDGenerator objectIDGenerator)
{
- id = UUID.randomUUID().toString();
+ this.id = objectIDGenerator.generateID();
this.username = username;
@@ -137,6 +140,8 @@
this.connectionManager = connectionManager;
+ this.objectIDGenerator = objectIDGenerator;
+
started = false;
createdTime = System.currentTimeMillis();
@@ -146,7 +151,7 @@
// ServerConnection implementation ------------------------------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
@@ -157,13 +162,11 @@
{
ServerSession session =
new ServerSessionImpl(autoCommitSends, autoCommitAcks, xa, this, resourceManager,
- sender, dispatcher, persistenceManager, queueSettingsRepository, postOffice, securityStore);
+ sender, dispatcher, persistenceManager, queueSettingsRepository, postOffice, securityStore,
+ objectIDGenerator);
- synchronized (sessions)
- {
- sessions.put(session.getID(), session);
- }
-
+ sessions.add(session);
+
dispatcher.register(new ServerSessionPacketHandler(session));
return new ConnectionCreateSessionResponseMessage(session.getID());
@@ -181,9 +184,9 @@
public void close() throws Exception
{
- Map<String, ServerSession> sessionsClone = new HashMap<String, ServerSession>(sessions);
+ Set<ServerSession> sessionsClone = new HashSet<ServerSession>(sessions);
- for (ServerSession session: sessionsClone.values())
+ for (ServerSession session: sessionsClone)
{
session.close();
}
@@ -235,14 +238,14 @@
return password;
}
- public void removeSession(final String sessionId) throws Exception
+ public void removeSession(final ServerSession session) throws Exception
{
- if (sessions.remove(sessionId) == null)
+ if (!sessions.remove(session))
{
- throw new IllegalStateException("Cannot find session with id " + sessionId + " to remove");
+ throw new IllegalStateException("Cannot find session with id " + session.getID() + " to remove");
}
- dispatcher.unregister(sessionId);
+ dispatcher.unregister(session.getID());
}
public void addTemporaryQueue(final Queue queue)
@@ -287,7 +290,7 @@
public Collection<ServerSession> getSessions()
{
- return sessions.values();
+ return sessions;
}
// Public ---------------------------------------------------------------------------------------
@@ -301,11 +304,9 @@
private void setStarted(final boolean started) throws Exception
{
- Map<String, ServerSession> sessionsClone = null;
-
- sessionsClone = new HashMap<String, ServerSession>(sessions);
+ Set<ServerSession> sessionsClone = new HashSet<ServerSession>(sessions);
- for (ServerSession session: sessionsClone.values() )
+ for (ServerSession session: sessionsClone)
{
session.setStarted(started);
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,17 +21,13 @@
*/
package org.jboss.messaging.core.server.impl;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.server.ServerConnection;
@@ -52,7 +48,7 @@
this.connection = connection;
}
- public String getID()
+ public long getID()
{
return connection.getID();
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -65,7 +65,7 @@
private final boolean trace = log.isTraceEnabled();
- private final String id;
+ private final long id;
private final Queue messageQueue;
@@ -77,7 +77,7 @@
private final TokenBucketLimiter limiter;
- private final String connectionID;
+ private final long connectionID;
private final ServerSession sessionEndpoint;
@@ -94,16 +94,16 @@
private boolean started;
// Constructors ---------------------------------------------------------------------------------
-
- ServerConsumerImpl(final Queue messageQueue, final boolean noLocal, final Filter filter,
+
+ ServerConsumerImpl(final long id, final Queue messageQueue, final boolean noLocal, final Filter filter,
final boolean autoDeleteQueue, final boolean enableFlowControl, final int maxRate,
- final String connectionID, final ServerSession sessionEndpoint,
+ final long connectionID, final ServerSession sessionEndpoint,
final StorageManager persistenceManager,
final HierarchicalRepository<QueueSettings> queueSettingsRepository,
final PostOffice postOffice,
final boolean started)
{
- id = UUID.randomUUID().toString();
+ this.id = id;
this.messageQueue = messageQueue;
@@ -148,7 +148,7 @@
// ServerConsumer implementation ----------------------------------------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
@@ -185,9 +185,9 @@
if (noLocal)
{
- String conId = message.getConnectionID();
+ long conId = message.getConnectionID();
- if (connectionID.equals(conId))
+ if (connectionID == conId)
{
Transaction tx = new TransactionImpl(persistenceManager, postOffice);
@@ -243,7 +243,7 @@
}
}
- sessionEndpoint.removeConsumer(id);
+ sessionEndpoint.removeConsumer(this);
}
public void setStarted(final boolean started)
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,15 +21,13 @@
*/
package org.jboss.messaging.core.server.impl;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_FLOWTOKEN;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.server.ServerConsumer;
@@ -50,7 +48,7 @@
this.consumer = consumer;
}
- public String getID()
+ public long getID()
{
return consumer.getID();
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -23,10 +23,10 @@
import org.jboss.logging.Logger;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
*
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -26,8 +26,8 @@
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.postoffice.FlowController;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
import org.jboss.messaging.core.server.ServerProducer;
import org.jboss.messaging.core.server.ServerSession;
@@ -43,7 +43,7 @@
{
private static final Logger log = Logger.getLogger(ServerProducerImpl.class);
- private final String id;
+ private final long id;
private final ServerSession session;
@@ -57,11 +57,11 @@
// Constructors ----------------------------------------------------------------
- public ServerProducerImpl(final ServerSession session, final String address,
+ public ServerProducerImpl(final long id, final ServerSession session, final String address,
final PacketSender sender,
final FlowController flowController) throws Exception
{
- id = UUID.randomUUID().toString();
+ this.id = id;
this.session = session;
@@ -74,14 +74,14 @@
// ServerProducer implementation --------------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
public void close() throws Exception
{
- session.removeProducer(id);
+ session.removeProducer(this);
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,14 +21,12 @@
*/
package org.jboss.messaging.core.server.impl;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
import org.jboss.messaging.core.server.ServerProducer;
@@ -49,7 +47,7 @@
this.producer = producer;
}
- public String getID()
+ public long getID()
{
return producer.getID();
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -22,13 +22,11 @@
package org.jboss.messaging.core.server.impl;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -59,6 +57,7 @@
import org.jboss.messaging.core.security.CheckType;
import org.jboss.messaging.core.security.SecurityStore;
import org.jboss.messaging.core.server.Delivery;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerConnection;
import org.jboss.messaging.core.server.ServerConsumer;
@@ -69,6 +68,7 @@
import org.jboss.messaging.core.transaction.ResourceManager;
import org.jboss.messaging.core.transaction.Transaction;
import org.jboss.messaging.core.transaction.impl.TransactionImpl;
+import org.jboss.messaging.util.ConcurrentHashSet;
/**
* Session implementation
@@ -99,7 +99,7 @@
private final boolean trace = log.isTraceEnabled();
- private final String id;
+ private final long id;
private final boolean autoCommitSends;
@@ -120,12 +120,14 @@
private final PostOffice postOffice;
private final SecurityStore securityStore;
+
+ private final ObjectIDGenerator objectIDGenerator;
- private final Map<String, ServerConsumer> consumers = new ConcurrentHashMap<String, ServerConsumer>();
+ private final Set<ServerConsumer> consumers = new ConcurrentHashSet<ServerConsumer>();
- private final Map<String, ServerBrowserImpl> browsers = new ConcurrentHashMap<String, ServerBrowserImpl>();
+ private final Set<ServerBrowserImpl> browsers = new ConcurrentHashSet<ServerBrowserImpl>();
- private final Map<String, ServerProducer> producers = new ConcurrentHashMap<String, ServerProducer>();
+ private final Set<ServerProducer> producers = new ConcurrentHashSet<ServerProducer>();
private final LinkedList<Delivery> deliveries = new LinkedList<Delivery>();
@@ -144,9 +146,10 @@
final ResourceManager resourceManager, final PacketSender sender,
final PacketDispatcher dispatcher, final StorageManager persistenceManager,
final HierarchicalRepository<QueueSettings> queueSettingsRepository,
- final PostOffice postOffice, final SecurityStore securityStore) throws Exception
+ final PostOffice postOffice, final SecurityStore securityStore,
+ final ObjectIDGenerator objectIDGenerator) throws Exception
{
- id = UUID.randomUUID().toString();
+ this.id = objectIDGenerator.generateID();
this.autoCommitSends = autoCommitSends;
@@ -172,6 +175,8 @@
this.postOffice = postOffice;
this.securityStore = securityStore;
+
+ this.objectIDGenerator = objectIDGenerator;
if (log.isTraceEnabled())
{
@@ -182,7 +187,7 @@
// ServerSession implementation
// ---------------------------------------------------------------------------------------
- public String getID()
+ public long getID()
{
return id;
}
@@ -192,34 +197,34 @@
return connection;
}
- public void removeBrowser(final String browserID) throws Exception
+ public void removeBrowser(final ServerBrowserImpl browser) throws Exception
{
- if (browsers.remove(browserID) == null)
+ if (!browsers.remove(browser))
{
- throw new IllegalStateException("Cannot find browser with id " + browserID + " to remove");
+ throw new IllegalStateException("Cannot find browser with id " + browser.getID() + " to remove");
}
- dispatcher.unregister(browserID);
+ dispatcher.unregister(browser.getID());
}
- public void removeConsumer(final String consumerID) throws Exception
+ public void removeConsumer(final ServerConsumer consumer) throws Exception
{
- if (consumers.remove(consumerID) == null)
+ if (!consumers.remove(consumer))
{
- throw new IllegalStateException("Cannot find consumer with id " + consumerID + " to remove");
+ throw new IllegalStateException("Cannot find consumer with id " + consumer.getID() + " to remove");
}
- dispatcher.unregister(consumerID);
+ dispatcher.unregister(consumer.getID());
}
- public void removeProducer(final String producerID) throws Exception
+ public void removeProducer(final ServerProducer producer) throws Exception
{
- if (producers.remove(producerID) == null)
+ if (!producers.remove(producer))
{
- throw new IllegalStateException("Cannot find producer with id " + producerID + " to remove");
+ throw new IllegalStateException("Cannot find producer with id " + producer.getID() + " to remove");
}
- dispatcher.unregister(producerID);
+ dispatcher.unregister(producer.getID());
}
public synchronized void handleDelivery(final MessageReference ref, final ServerConsumer consumer) throws Exception
@@ -233,9 +238,9 @@
public void setStarted(final boolean s) throws Exception
{
- Map<String, ServerConsumer> consumersClone = new HashMap<String, ServerConsumer>(consumers);
+ Set<ServerConsumer> consumersClone = new HashSet<ServerConsumer>(consumers);
- for (ServerConsumer consumer: consumersClone.values())
+ for (ServerConsumer consumer: consumersClone)
{
consumer.setStarted(s);
}
@@ -243,27 +248,27 @@
public void close() throws Exception
{
- Map<String, ServerConsumer> consumersClone = new HashMap<String, ServerConsumer>(consumers);
+ Set<ServerConsumer> consumersClone = new HashSet<ServerConsumer>(consumers);
- for (ServerConsumer consumer: consumersClone.values())
+ for (ServerConsumer consumer: consumersClone)
{
consumer.close();
}
consumers.clear();
- Map<String, ServerBrowserImpl> browsersClone = new HashMap<String, ServerBrowserImpl>(browsers);
+ Set<ServerBrowserImpl> browsersClone = new HashSet<ServerBrowserImpl>(browsers);
- for (ServerBrowserImpl browser: browsersClone.values())
+ for (ServerBrowserImpl browser: browsersClone)
{
browser.close();
}
browsers.clear();
- Map<String, ServerProducer> producersClone = new HashMap<String, ServerProducer>(producers);
+ Set<ServerProducer> producersClone = new HashSet<ServerProducer>(producers);
- for (ServerProducer producer: producersClone.values())
+ for (ServerProducer producer: producersClone)
{
producer.close();
}
@@ -276,7 +281,7 @@
deliveries.clear();
- connection.removeSession(id);
+ connection.removeSession(this);
}
public void promptDelivery(final Queue queue)
@@ -919,7 +924,7 @@
maxRate = queueMaxRate != null ? queueMaxRate : maxRate;
ServerConsumer consumer =
- new ServerConsumerImpl(binding.getQueue(), noLocal, filter, autoDeleteQueue, windowSize != -1, maxRate, connection.getID(),
+ new ServerConsumerImpl(objectIDGenerator.generateID(), binding.getQueue(), noLocal, filter, autoDeleteQueue, windowSize != -1, maxRate, connection.getID(),
this, persistenceManager, queueSettingsRepository, postOffice, connection.isStarted());
dispatcher.register(new ServerConsumerPacketHandler(consumer));
@@ -927,7 +932,7 @@
SessionCreateConsumerResponseMessage response =
new SessionCreateConsumerResponseMessage(consumer.getID(), windowSize);
- consumers.put(consumer.getID(), consumer);
+ consumers.add(consumer);
return response;
}
@@ -999,9 +1004,9 @@
securityStore.check(binding.getAddress(), CheckType.READ, connection);
- ServerBrowserImpl browser = new ServerBrowserImpl(this, binding.getQueue(), selector);
+ ServerBrowserImpl browser = new ServerBrowserImpl(objectIDGenerator.generateID(), this, binding.getQueue(), selector);
- browsers.put(browser.getID(), browser);
+ browsers.add(browser);
dispatcher.register(browser.newHandler());
@@ -1029,9 +1034,9 @@
flowController = windowSize == -1 ? null : postOffice.getFlowController(address);
}
- ServerProducerImpl producer = new ServerProducerImpl(this, address, sender, flowController);
+ ServerProducerImpl producer = new ServerProducerImpl(objectIDGenerator.generateID(), this, address, sender, flowController);
- producers.put(producer.getID(), producer);
+ producers.add(producer);
dispatcher.register(new ServerProducerPacketHandler(producer));
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,8 +29,8 @@
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
@@ -77,7 +77,7 @@
this.session = session;
}
- public String getID()
+ public long getID()
{
return session.getID();
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,13 +37,13 @@
public enum status{ STARTED, STOPPED }
- private final String id;
+ private final long id;
private final String user;
private final String address;
private final boolean started;
private final long created;
- public ConnectionInfo(final String id, final String user, final String address,
+ public ConnectionInfo(final long id, final String user, final String address,
final boolean started, final long created)
{
this.id = id;
@@ -53,7 +53,7 @@
this.created = created;
}
- public String getId()
+ public long getId()
{
return id;
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,6 +6,7 @@
import javax.jms.Message;
+
/**
* The JMS Management interface.
*
@@ -306,7 +307,7 @@
* @param clientId the client id
* @throws Exception if a problem occurred
*/
- void dropConnection(String clientId) throws Exception;
+ void dropConnection(long id) throws Exception;
/**
* drop all the connections for a specific user
@@ -320,7 +321,7 @@
* @return the session info
* @throws Exception if a problem occurred
*/
- public List<SessionInfo> getSessions() throws Exception;
+ //public List<SessionInfo> getSessions() throws Exception;
/**
* get the session info for a particular connection with the specified client id
@@ -328,7 +329,7 @@
* @return the session info
* @throws Exception if a problem occurred
*/
- public List<SessionInfo> getSessionsForConnection(String clientid) throws Exception;
+ // public List<SessionInfo> getSessionsForConnection(long id) throws Exception;
/**
* get the session info for a particular user
@@ -336,7 +337,7 @@
* @return the session info
* @throws Exception if a problem occurred
*/
- public List<SessionInfo> getSessionsForUser(String user) throws Exception;
+ // public List<SessionInfo> getSessionsForUser(String user) throws Exception;
/**
* Start gathering delivery statistics for all queues
Modified: trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,22 +29,22 @@
*/
public class SessionInfo implements Serializable
{
- private final String id;
+ private final long id;
- private final String connectionID;
+ private final long connectionID;
- public SessionInfo(final String id, final String connectionID)
+ public SessionInfo(final long id, final long connectionID)
{
this.id = id;
this.connectionID = connectionID;
}
- public String getId()
+ public long getId()
{
return id;
}
- public String getConnectionID()
+ public long getConnectionID()
{
return connectionID;
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -42,7 +42,6 @@
import org.jboss.messaging.core.messagecounter.MessageCounter;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerConnection;
-import org.jboss.messaging.core.server.ServerSession;
import org.jboss.messaging.jms.JBossQueue;
import org.jboss.messaging.jms.JBossTemporaryQueue;
import org.jboss.messaging.jms.JBossTemporaryTopic;
@@ -52,7 +51,6 @@
import org.jboss.messaging.jms.server.ConnectionInfo;
import org.jboss.messaging.jms.server.JMSServerManager;
import org.jboss.messaging.jms.server.MessageStatistics;
-import org.jboss.messaging.jms.server.SessionInfo;
import org.jboss.messaging.jms.server.SubscriptionInfo;
import org.jboss.messaging.util.JNDIUtil;
import org.jboss.messaging.util.Pair;
@@ -431,12 +429,12 @@
return connectionInfos;
}
- public void dropConnection(String clientId) throws Exception
+ public void dropConnection(long clientId) throws Exception
{
List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
for (ServerConnection endpoint : endpoints)
{
- if (endpoint.getID().equals(clientId))
+ if (endpoint.getID() == clientId)
{
endpoint.close();
break;
@@ -450,11 +448,9 @@
List<ConnectionInfo> connectionInfos = getConnectionsForUser(user);
for (ConnectionInfo connectionInfo : connectionInfos)
{
-
-
for (ServerConnection endpoint : endpoints)
{
- if (endpoint.getID().equals(connectionInfo.getId()))
+ if (endpoint.getID() == connectionInfo.getId())
{
endpoint.close();
break;
@@ -463,44 +459,44 @@
}
}
- public List<SessionInfo> getSessions() throws Exception
- {
- return getSessionsForConnection(null);
- }
+// public List<SessionInfo> getSessions() throws Exception
+// {
+// return getSessionsForConnection(null);
+// }
+//
+// public List<SessionInfo> getSessionsForConnection(long id) throws Exception
+// {
+// List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+// List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+// for (ServerConnection endpoint : endpoints)
+// {
+// if (id == endpoint.getID())
+// {
+// Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
+// for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
+// {
+// sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
+// endpoint.getID()));
+// }
+// }
+// }
+// return sessionInfos;
+// }
- public List<SessionInfo> getSessionsForConnection(String id) throws Exception
- {
- List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
- List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
- for (ServerConnection endpoint : endpoints)
- {
- if (id == null || id.equals(endpoint.getID()))
- {
- Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
- for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
- {
- sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
- endpoint.getID()));
- }
- }
- }
- return sessionInfos;
- }
+// public List<SessionInfo> getSessionsForUser(String user) throws Exception
+// {
+// List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+// List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+// for (ServerConnection endpoint : endpoints)
+// {
+// if (user == null || user.equals(endpoint.getUsername()))
+// {
+// sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
+// }
+// }
+// return sessionInfos;
+// }
- public List<SessionInfo> getSessionsForUser(String user) throws Exception
- {
- List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
- List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
- for (ServerConnection endpoint : endpoints)
- {
- if (user == null || user.equals(endpoint.getUsername()))
- {
- sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
- }
- }
- return sessionInfos;
- }
-
public void startGatheringStatistics() throws Exception
{
Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();
Modified: trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -188,8 +188,8 @@
{
Message message = new MessageImpl();
- assertNull(message.getConnectionID());
- String connectionID = "conn123";
+ assertEquals(0, message.getConnectionID());
+ long connectionID = 781628;
message.setConnectionID(connectionID);
assertEquals(connectionID, message.getConnectionID());
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -13,18 +13,19 @@
import static org.jboss.messaging.test.unit.RandomUtil.randomString;
import java.util.List;
+import java.util.concurrent.atomic.AtomicLong;
import junit.framework.TestCase;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.mina.integration.test.ReversePacketHandler;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
@@ -56,7 +57,7 @@
public void testConnected() throws Exception
{
- NIOConnector connector = createNIOConnector(new PacketDispatcherImpl());
+ NIOConnector connector = createNIOConnector(new PacketDispatcherImpl(null));
NIOSession session = connector.connect();
assertTrue(session.isConnected());
@@ -106,77 +107,7 @@
}
}
- public void testWriteWithCallbackHandler() throws Exception
- {
- TestPacketHandler callbackHandler = new TestPacketHandler();
- callbackHandler.expectMessage(1);
-
- clientDispatcher.register(callbackHandler);
-
- TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
- packet.setTargetID(serverPacketHandler.getID());
- packet.setCallbackID(callbackHandler.getID());
-
- session.write(packet);
-
- assertTrue(callbackHandler.await(5, SECONDS));
-
- assertEquals(1, callbackHandler.getPackets().size());
- String response = callbackHandler.getPackets().get(0).getText();
- assertEquals(reverse(packet.getText()), response);
- }
- public void testWriteAndBlockWithOneCallbackLater() throws Exception
- {
- final PacketSender[] serverSender = new PacketSender[1];
- PacketHandler serverHandler = new PacketHandler() {
- private final String id = randomString();
-
- public String getID()
- {
- return id;
- }
-
- public void handle(Packet packet, PacketSender sender)
- {
- serverSender[0] = sender;
- // immediate reply
- TextPacket response = new TextPacket("blockingResponse");
- response.normalize(packet);
- try
- {
- sender.send(packet);
- } catch (Exception e)
- {
- fail(e.getMessage());
- }
- }
- };
- serverDispatcher.register(serverHandler);
-
- TestPacketHandler callbackHandler = new TestPacketHandler();
- callbackHandler.expectMessage(1);
- clientDispatcher.register(callbackHandler);
-
- TextPacket packet = new TextPacket("testSendOneWayWith2Callbacks");
- packet.setTargetID(serverHandler.getID());
- packet.setCallbackID(callbackHandler.getID());
-
- PacketImpl blockingResponse = (PacketImpl) session.writeAndBlock(packet, REQRES_TIMEOUT, SECONDS);
- assertNotNull(blockingResponse);
-
- assertEquals(0, callbackHandler.getPackets().size());
-
- assertNotNull(serverSender[0]);
- TextPacket callbackResponse = new TextPacket("callbackResponse");
- callbackResponse.setTargetID(callbackHandler.getID());
- serverSender[0].send(callbackResponse);
-
- assertTrue(callbackHandler.await(REQRES_TIMEOUT, SECONDS));
-
- assertEquals(1, callbackHandler.getPackets().size());
- }
-
public void testWriteAndBlock() throws Exception
{
TextPacket request = new TextPacket("testSendBlocking");
@@ -209,7 +140,7 @@
public void testClientHandlePacketSentByServer() throws Exception
{
- TestPacketHandler clientHandler = new TestPacketHandler();
+ TestPacketHandler clientHandler = new TestPacketHandler(generateID());
clientDispatcher.register(clientHandler);
serverPacketHandler.expectMessage(1);
@@ -230,7 +161,7 @@
"testClientHandlePacketSentByServer from server");
packetFromServer.setTargetID(clientHandler.getID());
sender.send(packetFromServer);
-
+
assertTrue(clientHandler.await(2, SECONDS));
List<TextPacket> packets = clientHandler.getPackets();
@@ -246,12 +177,12 @@
{
serverDispatcher = startServer();
- clientDispatcher = new PacketDispatcherImpl();
+ clientDispatcher = new PacketDispatcherImpl(null);
connector = createNIOConnector(clientDispatcher);
session = connector.connect();
- serverPacketHandler = new ReversePacketHandler();
+ serverPacketHandler = new ReversePacketHandler(generateID());
serverDispatcher.register(serverPacketHandler);
}
@@ -276,4 +207,11 @@
protected abstract PacketDispatcher startServer() throws Exception;
protected abstract void stopServer();
+
+ private AtomicLong idSequence = new AtomicLong(0);
+
+ private long generateID()
+ {
+ return idSequence.getAndIncrement();
+ }
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,8 +12,8 @@
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
public class DummyInterceptor implements Interceptor
{
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.Interceptor;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
public class DummyInterceptorB implements Interceptor
{
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,7 +29,7 @@
// Attributes ----------------------------------------------------
- PacketDispatcher serverDispatcher = new PacketDispatcherImpl();
+ PacketDispatcher serverDispatcher = new PacketDispatcherImpl(null);
// Static --------------------------------------------------------
@@ -42,7 +42,7 @@
@Override
protected NIOConnector createNIOConnector(PacketDispatcher dispatcher)
{
- return new INVMConnector(dispatcher, serverDispatcher);
+ return new INVMConnector(1, dispatcher, serverDispatcher);
}
@Override
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -16,6 +16,7 @@
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.KEEP_ALIVE_INTERVAL;
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.KEEP_ALIVE_TIMEOUT;
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.PORT;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
import static org.jboss.messaging.test.unit.RandomUtil.randomString;
import java.util.concurrent.CountDownLatch;
@@ -35,6 +36,7 @@
import org.jboss.messaging.core.remoting.impl.mina.MinaService;
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.test.unit.RandomUtil;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -78,11 +80,11 @@
KeepAliveFactory factory = createMock(KeepAliveFactory.class);
// client never send ping
- expect(factory.ping(isA(String.class))).andStubReturn(null);
- expect(factory.isPing(isA(String.class), isA(Ping.class))).andStubReturn(true);
- expect(factory.isPing(isA(String.class), isA(Object.class))).andStubReturn(false);
+ expect(factory.ping(isA(Long.class))).andStubReturn(null);
+ expect(factory.isPing(isA(Long.class), isA(Ping.class))).andStubReturn(true);
+ expect(factory.isPing(isA(Long.class), isA(Object.class))).andStubReturn(false);
// client is responding
- expect(factory.pong(isA(String.class), isA(Ping.class))).andReturn(new Pong(randomString(), false)).atLeastOnce();
+ expect(factory.pong(isA(Long.class), isA(Ping.class))).andReturn(new Pong(randomLong(), false)).atLeastOnce();
replay(factory);
@@ -98,7 +100,7 @@
};
service.addFailureListener(listener);
- MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(), factory);
+ MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(null), factory);
connector.connect();
boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
@@ -115,7 +117,7 @@
{
KeepAliveFactory factory = new ClientKeepAliveFactoryNotResponding();
- final String[] clientSessionIDNotResponding = new String[1];
+ final long[] clientSessionIDNotResponding = new long[1];
final CountDownLatch latch = new CountDownLatch(1);
FailureListener listener = new FailureListener() {
@@ -129,10 +131,10 @@
};
service.addFailureListener(listener);
- MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(), factory);
+ MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(null), factory);
NIOSession session = connector.connect();
- String clientSessionID = session.getID();
+ long clientSessionID = session.getID();
boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
+ KEEP_ALIVE_TIMEOUT + 2, SECONDS);
@@ -148,17 +150,17 @@
{
KeepAliveFactory factory = new KeepAliveFactory()
{
- public Ping ping(String sessionID)
+ public Ping ping(long sessionID)
{
return null;
}
- public boolean isPing(String sessionID, Object message)
+ public boolean isPing(long sessionID, Object message)
{
return (message instanceof Ping);
}
- public synchronized Pong pong(String sessionID, Ping ping)
+ public synchronized Pong pong(long sessionID, Ping ping)
{
// like a TCP timeout, there is no response in the next 2 hours
try
@@ -168,19 +170,19 @@
{
e.printStackTrace();
}
- return new Pong(randomString(), false);
+ return new Pong(randomLong(), false);
}
};
try
{
MinaConnector connector = new MinaConnector(service.getConfiguration(),
- new PacketDispatcherImpl(), factory);
+ new PacketDispatcherImpl(null), factory);
NIOSession session = connector.connect();
- String clientSessionID = session.getID();
+ long clientSessionID = session.getID();
- final String[] clientSessionIDNotResponding = new String[1];
+ final long[] clientSessionIDNotResponding = new long[1];
final CountDownLatch latch = new CountDownLatch(1);
FailureListener listener = new FailureListener() {
@@ -219,7 +221,7 @@
KeepAliveFactory notRespondingfactory = new ClientKeepAliveFactoryNotResponding();
KeepAliveFactory respondingfactory = new ClientKeepAliveFactory();
- final String[] sessionIDNotResponding = new String[1];
+ final long[] sessionIDNotResponding = new long[1];
final CountDownLatch latch = new CountDownLatch(1);
FailureListener listener = new FailureListener() {
@@ -234,16 +236,16 @@
service.addFailureListener(listener);
MinaConnector connectorNotResponding = new MinaConnector(service
- .getConfiguration(), new PacketDispatcherImpl(), notRespondingfactory);
+ .getConfiguration(), new PacketDispatcherImpl(null), notRespondingfactory);
MinaConnector connectorResponding = new MinaConnector(service
- .getConfiguration(), new PacketDispatcherImpl(), respondingfactory);
+ .getConfiguration(), new PacketDispatcherImpl(null), respondingfactory);
NIOSession sessionNotResponding = connectorNotResponding.connect();
- String clientSessionIDNotResponding = sessionNotResponding.getID();
+ long clientSessionIDNotResponding = sessionNotResponding.getID();
NIOSession sessionResponding = connectorResponding.connect();
- String clientSessionIDResponding = sessionResponding.getID();
+ long clientSessionIDResponding = sessionResponding.getID();
boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
+ KEEP_ALIVE_TIMEOUT + 2, SECONDS);
@@ -269,13 +271,13 @@
private class ClientKeepAliveFactoryNotResponding extends ClientKeepAliveFactory
{
@Override
- public Ping ping(String clientSessionID)
+ public Ping ping(long clientSessionID)
{
return null;
}
@Override
- public Pong pong(String sessionID, Ping ping)
+ public Pong pong(long sessionID, Ping ping)
{
return null;
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
import static org.easymock.EasyMock.verify;
import static org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport.addCodecFilter;
import static org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport.addSSLFilter;
-import static org.jboss.messaging.test.unit.RandomUtil.randomString;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
import java.net.InetSocketAddress;
import java.util.concurrent.CountDownLatch;
@@ -32,6 +32,7 @@
import org.jboss.messaging.core.remoting.impl.mina.FailureNotifier;
import org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport;
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
+import org.jboss.messaging.test.unit.RandomUtil;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -119,7 +120,7 @@
connector.setHandler(new IoHandlerAdapter());
ConnectFuture future = connector.connect(address).awaitUninterruptibly();
IoSession session = future.getSession();
- session.write(new Ping(randomString()));
+ session.write(new Ping(randomLong()));
boolean gotMessage = latch.await(500, MILLISECONDS);
assertTrue(gotMessage);
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,14 +12,15 @@
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicLong;
import junit.framework.TestCase;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
import org.jboss.messaging.core.remoting.impl.mina.MinaHandler;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
@@ -99,13 +100,13 @@
@Override
protected void setUp() throws Exception
{
- clientDispatcher = new PacketDispatcherImpl();
+ clientDispatcher = new PacketDispatcherImpl(null);
threadPool = Executors.newCachedThreadPool();
handler = new MinaHandler(clientDispatcher, threadPool, null, true);
- handler_1 = new TestPacketHandler();
+ handler_1 = new TestPacketHandler(23);
clientDispatcher.register(handler_1);
- handler_2 = new TestPacketHandler() {
+ handler_2 = new TestPacketHandler(24) {
@Override
public void handle(Packet packet, PacketSender sender)
{
@@ -141,6 +142,6 @@
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
-
+
// Inner classes -------------------------------------------------
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -85,11 +85,11 @@
@Override
protected void setUp() throws Exception
{
- clientDispatcher = new PacketDispatcherImpl();
+ clientDispatcher = new PacketDispatcherImpl(null);
threadPool = Executors.newCachedThreadPool();
handler = new MinaHandler(clientDispatcher, threadPool, null, true);
- packetHandler = new TestPacketHandler();
+ packetHandler = new TestPacketHandler(23);
clientDispatcher.register(packetHandler);
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,16 +50,15 @@
public void testGetRequestIdForAbstractPacketWhichIsNotRequest()
{
PacketImpl packet = new PacketImpl(NULL);
- packet.setTargetID(UUID.randomUUID().toString());
- assertFalse(packet.isRequest());
-
+ packet.setTargetID(23);
+ assertFalse(packet.isRequest());
assertNull(inspector.getRequestId(packet));
}
public void testGetRequestIdForAbstractPacketWhichIsRequest()
{
PacketImpl packet = new PacketImpl(NULL);
- packet.setTargetID(UUID.randomUUID().toString());
+ packet.setTargetID(23);
packet.setCorrelationID(System.currentTimeMillis());
assertTrue(packet.isRequest());
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -58,7 +58,7 @@
public void testResponseIsAPongWithSessionNotFailed()
{
IoSession session = createMock(IoSession.class);
- String sessionID = randomString();
+ long sessionID = randomLong();
Pong pong = new Pong(sessionID, false);
KeepAliveFactory factory = createMock(KeepAliveFactory.class);
FailureNotifier notifier = createMock(FailureNotifier.class);
@@ -74,8 +74,8 @@
public void testResponseIsAPongWithSessionFailed()
{
IoSession session = createMock(IoSession.class);
- String sessionID = Long.toString(randomLong());
- expect(session.getId()).andStubReturn(Long.parseLong(sessionID));
+ long sessionID = randomLong();
+ expect(session.getId()).andStubReturn(sessionID);
Pong pong = new Pong(sessionID, true);
KeepAliveFactory factory = createMock(KeepAliveFactory.class);
FailureNotifier notifier = createMock(FailureNotifier.class);
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -32,7 +32,7 @@
public void testINVMConnector_OK() throws Exception
{
- NIOConnector connector = new INVMConnector(new PacketDispatcherImpl(), invmService.getDispatcher());
+ NIOConnector connector = new INVMConnector(1, new PacketDispatcherImpl(null), invmService.getDispatcher());
NIOSession session = connector.connect();
assertTrue(session.isConnected());
@@ -43,7 +43,7 @@
public void testMinaConnector_Failure() throws Exception
{
NIOConnector connector = new MinaConnector(ConfigurationHelper.newConfiguration(
- TCP, "localhost", 9000), new PacketDispatcherImpl());
+ TCP, "localhost", 9000), new PacketDispatcherImpl(null));
try
{
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -16,8 +16,8 @@
import junit.framework.Assert;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
@@ -43,6 +43,11 @@
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
+
+ public ReversePacketHandler(final long id)
+ {
+ super(id);
+ }
// Public --------------------------------------------------------
@@ -78,7 +83,7 @@
}
TextPacket message = (TextPacket) packet;
- if (message.isRequest() || !NO_ID_SET.equals(message.getCallbackID()))
+ if (message.isRequest())
{
TextPacket response = new TextPacket(reverse(message.getText()));
response.normalize(message);
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -68,13 +68,13 @@
{
// server does not send ping
@Override
- public Ping ping(String sessionID)
+ public Ping ping(long sessionID)
{
return null;
}
@Override
- public Pong pong(String sessionID, Ping ping)
+ public Pong pong(long sessionID, Ping ping)
{
// no pong -> server is not responding
super.pong(sessionID, ping);
@@ -90,8 +90,8 @@
service.start();
MinaConnector connector = new MinaConnector(service
- .getConfiguration(), new PacketDispatcherImpl());
- final String[] sessionIDNotResponding = new String[1];
+ .getConfiguration(), new PacketDispatcherImpl(null));
+ final long[] sessionIDNotResponding = new long[1];
final CountDownLatch latch = new CountDownLatch(1);
FailureListener listener = new FailureListener()
@@ -123,13 +123,13 @@
{
// server does not send ping
@Override
- public Ping ping(String sessionID)
+ public Ping ping(long sessionID)
{
return null;
}
@Override
- public Pong pong(String sessionID, Ping ping)
+ public Pong pong(long sessionID, Ping ping)
{
// no pong -> server is not responding
super.pong(sessionID, ping);
@@ -145,8 +145,8 @@
service.start();
MinaConnector connector = new MinaConnector(service
- .getConfiguration(), new PacketDispatcherImpl());
- final String[] sessionIDNotResponding = new String[1];
+ .getConfiguration(), new PacketDispatcherImpl(null));
+ final long[] sessionIDNotResponding = new long[1];
final CountDownLatch latch = new CountDownLatch(1);
FailureListener listener = new FailureListener()
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -18,6 +18,7 @@
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.core.remoting.impl.ConfigurationHelper;
@@ -26,7 +27,6 @@
import org.jboss.messaging.core.remoting.impl.mina.MinaService;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -59,7 +59,7 @@
Configuration config = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT);
service = new MinaService(config);
service.start();
- connector = new MinaConnector(config, new PacketDispatcherImpl());
+ connector = new MinaConnector(config, new PacketDispatcherImpl(null));
}
@@ -83,7 +83,7 @@
System.out.println();
- final String handlerID = randomUUID().toString();
+ final long handlerID = 12346;
CountDownLatch latch = new CountDownLatch(1);
service.getDispatcher().register(new ServerHandler(handlerID, latch, spinner));
@@ -135,12 +135,12 @@
private final class ServerHandler implements PacketHandler
{
- private final String handlerID;
+ private final long handlerID;
private CountDownLatch latch;
private int messagesReceived;
private int spinner;
- private ServerHandler(String handlerID, CountDownLatch latch, int spinner)
+ private ServerHandler(long handlerID, CountDownLatch latch, int spinner)
{
this.handlerID = handlerID;
this.latch = latch;
@@ -148,7 +148,7 @@
messagesReceived = 0;
}
- public String getID()
+ public long getID()
{
return handlerID;
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -92,6 +92,7 @@
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.impl.MessageImpl;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.BytesPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionMessageCodec;
@@ -149,7 +150,6 @@
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
@@ -270,66 +270,19 @@
private static void checkHeader(SimpleRemotingBuffer buffer,
PacketImpl packet) throws Exception
{
- checkHeaderBytes(packet, buffer.buffer().buf());
-
assertEquals(buffer.get(), packet.getType().byteValue());
- String targetID = (packet.getTargetID().equals(NO_ID_SET) ? null : packet
- .getTargetID());
- String callbackID = (packet.getCallbackID().equals(NO_ID_SET) ? null
- : packet.getCallbackID());
- String executorID = (packet.getExecutorID().equals(NO_ID_SET) ? null
- : packet.getExecutorID());
-
- int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID)
- + BOOLEAN_LENGTH;
- assertEquals(buffer.getInt(), headerLength);
- assertEquals(buffer.getLong(), packet.getCorrelationID());
-
- String bufferTargetID = buffer.getNullableString();
- if (bufferTargetID == null)
- bufferTargetID = NO_ID_SET;
- String bufferCallbackID = buffer.getNullableString();
- if (bufferCallbackID == null)
- bufferCallbackID = NO_ID_SET;
- String bufferExecutorID = buffer.getNullableString();
- if (bufferExecutorID == null)
- bufferExecutorID = NO_ID_SET;
+ long correlationID = buffer.getLong();
+ long targetID = buffer.getLong();
+ long executorID = buffer.getLong();
boolean oneWay = buffer.getBoolean();
- assertEquals(bufferTargetID, packet.getTargetID());
- assertEquals(bufferCallbackID, packet.getCallbackID());
- assertEquals(bufferExecutorID, packet.getExecutorID());
+ assertEquals(packet.getCorrelationID(), correlationID);
+ assertEquals(packet.getTargetID(), targetID);
+ assertEquals(packet.getExecutorID(), executorID);
assertEquals(oneWay, packet.isOneWay());
}
- private static void checkHeaderBytes(PacketImpl packet, ByteBuffer actual)
- {
- String targetID = (packet.getTargetID().equals(NO_ID_SET) ? null : packet
- .getTargetID());
- String callbackID = (packet.getCallbackID().equals(NO_ID_SET) ? null
- : packet.getCallbackID());
- String executorID = (packet.getExecutorID().equals(NO_ID_SET) ? null
- : packet.getExecutorID());
-
- int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID)
- + BOOLEAN_LENGTH;
- ByteBuffer expected = ByteBuffer.allocate(1 + 1 + INT_LENGTH
- + headerLength);
- expected.put(packet.getType().byteValue());
-
- expected.putInt(headerLength);
- expected.putLong(packet.getCorrelationID());
- putNullableString(targetID, expected);
- putNullableString(callbackID, expected);
- putNullableString(executorID, expected);
- expected.put(packet.isOneWay() ? TRUE : FALSE);
- expected.flip();
-
- assertEqualsByteArrays(expected.remaining(), expected.array(), actual
- .array());
- }
-
private static void checkBodyIsEmpty(RemotingBuffer buffer)
{
assertEquals(0, buffer.getInt());
@@ -354,10 +307,9 @@
public void testNullPacket() throws Exception
{
PacketImpl packet = new PacketImpl(NULL);
- packet.setCallbackID(randomString());
packet.setCorrelationID(randomLong());
- packet.setTargetID(randomString());
- packet.setExecutorID(randomString());
+ packet.setTargetID(randomLong());
+ packet.setExecutorID(randomLong());
AbstractPacketCodec<Packet> codec = PacketCodecFactory
.createCodecForEmptyPacket(NULL);
@@ -369,14 +321,13 @@
Packet decodedPacket = codec.decode(buffer);
assertEquals(NULL, decodedPacket.getType());
- assertEquals(packet.getCallbackID(), decodedPacket.getCallbackID());
assertEquals(packet.getCorrelationID(), decodedPacket.getCorrelationID());
assertEquals(packet.getTargetID(), decodedPacket.getTargetID());
}
public void testPing() throws Exception
{
- Ping ping = new Ping(randomString());
+ Ping ping = new Ping(randomLong());
AbstractPacketCodec<Ping> codec = new PingCodec();
SimpleRemotingBuffer buffer = encode(ping, codec);
@@ -394,7 +345,7 @@
public void testPong() throws Exception
{
- Pong pong = new Pong(randomString(), true);
+ Pong pong = new Pong(randomLong(), true);
AbstractPacketCodec<Pong> codec = new PongCodec();
SimpleRemotingBuffer buffer = encode(pong, codec);
@@ -452,7 +403,7 @@
public void testCreateConnectionRequest() throws Exception
{
int version = randomInt();
- String remotingSessionID = randomString();
+ long remotingSessionID = randomLong();
String clientVMID = randomString();
String username = null;
String password = null;
@@ -482,13 +433,12 @@
public void testCreateConnectionResponse() throws Exception
{
- CreateConnectionResponse response = new CreateConnectionResponse(
- randomString());
+ CreateConnectionResponse response = new CreateConnectionResponse(randomLong());
AbstractPacketCodec<CreateConnectionResponse> codec = new CreateConnectionResponseMessageCodec();
SimpleRemotingBuffer buffer = encode(response, codec);
checkHeader(buffer, response);
- checkBody(buffer, response.getConnectionID());
+ checkBody(buffer, response.getConnectionTargetID());
buffer.rewind();
Packet decodedPacket = codec.decode(buffer);
@@ -496,8 +446,7 @@
assertTrue(decodedPacket instanceof CreateConnectionResponse);
CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
- assertEquals(response.getConnectionID(), decodedResponse
- .getConnectionID());
+ assertEquals(response.getConnectionTargetID(), decodedResponse.getConnectionTargetID());
}
public void testCreateSessionRequest() throws Exception
@@ -525,7 +474,7 @@
public void testCreateSessionResponse() throws Exception
{
- ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomString());
+ ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomLong());
AbstractPacketCodec codec = new ConnectionCreateSessionResponseMessageCodec();
SimpleRemotingBuffer buffer = encode(response, codec);
@@ -590,12 +539,12 @@
public void testCreateConsumerResponse() throws Exception
{
SessionCreateConsumerResponseMessage response =
- new SessionCreateConsumerResponseMessage(randomString(), randomInt());
+ new SessionCreateConsumerResponseMessage(randomLong(), randomInt());
AbstractPacketCodec codec = new SessionCreateConsumerResponseMessageCodec();
SimpleRemotingBuffer buffer = encode(response, codec);
checkHeader(buffer, response);
- checkBody(buffer, response.getConsumerID(), response.getWindowSize());
+ checkBody(buffer, response.getConsumerTargetID(), response.getWindowSize());
buffer.rewind();
Packet decodedPacket = codec.decode(buffer);
@@ -604,7 +553,7 @@
SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
- assertEquals(response.getConsumerID(), decodedResponse.getConsumerID());
+ assertEquals(response.getConsumerTargetID(), decodedResponse.getConsumerTargetID());
assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
}
@@ -634,12 +583,12 @@
public void testCreateProducerResponse() throws Exception
{
SessionCreateProducerResponseMessage response =
- new SessionCreateProducerResponseMessage(randomString(), randomInt(), randomInt());
+ new SessionCreateProducerResponseMessage(randomLong(), randomInt(), randomInt());
AbstractPacketCodec codec = new SessionCreateProducerResponseMessageCodec();
SimpleRemotingBuffer buffer = encode(response, codec);
checkHeader(buffer, response);
- checkBody(buffer, response.getProducerID(), response.getWindowSize(), response.getMaxRate());
+ checkBody(buffer, response.getProducerTargetID(), response.getWindowSize(), response.getMaxRate());
buffer.rewind();
Packet decodedPacket = codec.decode(buffer);
@@ -647,7 +596,7 @@
assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
- assertEquals(response.getProducerID(), decodedResponse.getProducerID());
+ assertEquals(response.getProducerTargetID(), decodedResponse.getProducerTargetID());
assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
}
@@ -870,12 +819,12 @@
public void testCreateBrowserResponse() throws Exception
{
- SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomString());
+ SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomLong());
AbstractPacketCodec codec = new SessionCreateBrowserResponseMessageCodec();
SimpleRemotingBuffer buffer = encode(response, codec);
checkHeader(buffer, response);
- checkBody(buffer, response.getBrowserID());
+ checkBody(buffer, response.getBrowserTargetID());
buffer.rewind();
Packet decodedPacket = codec.decode(buffer);
@@ -883,7 +832,7 @@
assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
- assertEquals(response.getBrowserID(), decodedResponse.getBrowserID());
+ assertEquals(response.getBrowserTargetID(), decodedResponse.getBrowserTargetID());
}
public void testBrowserResetMessage() throws Exception
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -44,7 +44,7 @@
protected void setUp() throws Exception
{
registry = new ConnectorRegistryImpl();
- dispatcher = new PacketDispatcherImpl();
+ dispatcher = new PacketDispatcherImpl(null);
assertEquals(0, registry.getRegisteredConfigurationSize());
}
@@ -73,8 +73,8 @@
{
Configuration config_1 = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT);
Configuration config_2 = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT + 1);
- PacketDispatcher dispatcher_1 = new PacketDispatcherImpl();
- PacketDispatcher dispatcher_2 = new PacketDispatcherImpl();
+ PacketDispatcher dispatcher_1 = new PacketDispatcherImpl(null);
+ PacketDispatcher dispatcher_2 = new PacketDispatcherImpl(null);
assertTrue(registry.register(config_1, dispatcher_1));
assertTrue(registry.register(config_2, dispatcher_2));
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,12 +6,12 @@
*/
package org.jboss.messaging.core.remoting.test.unit;
-import static java.util.UUID.randomUUID;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
import junit.framework.TestCase;
import org.jboss.messaging.core.remoting.PacketHandler;
@@ -45,7 +45,7 @@
@Override
protected void setUp() throws Exception
{
- dispatcher = new PacketDispatcherImpl();
+ dispatcher = new PacketDispatcherImpl(null);
}
@Override
@@ -57,7 +57,7 @@
public void testUnregisterAnUnregisteredHandlerReturnsNull() throws Exception
{
PacketHandler handler = createMock(PacketHandler.class);
- String id = randomUUID().toString();
+ long id = randomLong();
replay(handler);
@@ -70,7 +70,7 @@
public void testRegisterAndUnregisterValidHandler() throws Exception
{
PacketHandler handler = createMock(PacketHandler.class);
- String id = randomUUID().toString();
+ long id = randomLong();
expect(handler.getID()).andReturn(id).anyTimes();
replay(handler);
@@ -93,7 +93,7 @@
TextPacket packet = new TextPacket("testDispatch");
- String id = randomUUID().toString();
+ long id = randomLong();
expect(handler.getID()).andStubReturn(id);
handler.handle(packet, sender);
expectLastCall().once();
@@ -119,7 +119,7 @@
PacketHandlerRegistrationListener listener = createMock(PacketHandlerRegistrationListener.class);
PacketHandler handler = createMock(PacketHandler.class);
- String id = randomUUID().toString();
+ long id = randomLong();
expect(handler.getID()).andStubReturn(id);
listener.handlerRegistered(id);
expectLastCall().once();
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java 2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java 2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,29 +8,27 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
public class TestPacketHandler implements PacketHandler
{
- private final String id;
+ private final long id;
private final List<TextPacket> packets;
private CountDownLatch latch;
- public TestPacketHandler()
+ public TestPacketHandler(final long id)
{
- this.id = UUID.randomUUID().toString();
+ this.id = id;
packets = new ArrayList<TextPacket>();
}
- public String getID()
+ public long getID()
{
return id;
}
More information about the jboss-cvs-commits
mailing list