diff options
Diffstat (limited to 'qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java')
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java | 50 |
1 files changed, 21 insertions, 29 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java index 7d17397b2d..e5e10c0e07 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java @@ -25,10 +25,9 @@ import static org.apache.qpid.transport.Connection.State.CLOSING; import static org.apache.qpid.transport.Connection.State.NEW; import static org.apache.qpid.transport.Connection.State.OPEN; import static org.apache.qpid.transport.Connection.State.OPENING; +import static org.apache.qpid.transport.Connection.State.RESUMING; -import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -40,13 +39,6 @@ import java.util.concurrent.atomic.AtomicLong; import javax.security.sasl.SaslClient; import javax.security.sasl.SaslServer; -import org.apache.qpid.framing.ProtocolVersion; -import org.apache.qpid.transport.network.Assembler; -import org.apache.qpid.transport.network.Disassembler; -import org.apache.qpid.transport.network.InputHandler; -import org.apache.qpid.transport.network.NetworkConnection; -import org.apache.qpid.transport.network.OutgoingNetworkTransport; -import org.apache.qpid.transport.network.Transport; import org.apache.qpid.transport.network.security.SecurityLayer; import org.apache.qpid.transport.util.Logger; import org.apache.qpid.transport.util.Waiter; @@ -120,6 +112,7 @@ public class Connection extends ConnectionInvoker private SaslServer saslServer; private SaslClient saslClient; private int idleTimeout = 0; + private String _authorizationID; private Map<String,Object> _serverProperties; private String userID; private ConnectionSettings conSettings; @@ -241,14 +234,13 @@ public class Connection extends ConnectionInvoker state = OPENING; userID = settings.getUsername(); delegate = new ClientDelegate(settings); - - securityLayer = new SecurityLayer(this); - - OutgoingNetworkTransport transport = Transport.getOutgoingTransportInstance(ProtocolVersion.v0_10); - Receiver<ByteBuffer> receiver = securityLayer.receiver(new InputHandler(new Assembler(this))); - NetworkConnection network = transport.connect(settings, receiver, null); - sender = new Disassembler(securityLayer.sender(network.getSender()), settings.getMaxFrameSize()); - + + TransportBuilder transport = new TransportBuilder(); + transport.init(this); + this.sender = transport.buildSenderPipe(); + transport.buildReceiverPipe(this); + this.securityLayer = transport.getSecurityLayer(); + send(new ProtocolHeader(1, 0, 10)); Waiter w = new Waiter(lock, timeout); @@ -474,12 +466,11 @@ public class Connection extends ConnectionInvoker { synchronized (lock) { - List <Binary> transactedSessions = new ArrayList(); for (Session ssn : sessions.values()) { if (ssn.isTransacted()) - { - transactedSessions.add(ssn.getName()); + { + removeSession(ssn); ssn.setState(Session.State.CLOSED); } else @@ -489,11 +480,6 @@ public class Connection extends ConnectionInvoker ssn.resume(); } } - - for (Binary ssn_name : transactedSessions) - { - sessions.remove(ssn_name); - } setState(OPEN); } } @@ -659,6 +645,16 @@ public class Connection extends ConnectionInvoker return idleTimeout; } + public void setAuthorizationID(String authorizationID) + { + _authorizationID = authorizationID; + } + + public String getAuthorizationID() + { + return _authorizationID; + } + public String getUserID() { return userID; @@ -699,8 +695,4 @@ public class Connection extends ConnectionInvoker return connectionLost.get(); } - protected Collection<Session> getChannels() - { - return channels.values(); - } } |