From 1e5b182b168c869278dd5dd7dbe35d824f22da06 Mon Sep 17 00:00:00 2001 From: Marian Adamjak Date: Thu, 23 Oct 2014 09:02:32 +0200 Subject: [PATCH] EnhancedMessageTypeKey add hash(), ChannelOutboundQueue change address to final and modify constructor Change-Id: I732e81ff1949a8f9a9c4aa42579d20287faf5e03 Signed-off-by: Marian Adamjak --- .../api/extensibility/EnhancedMessageTypeKey.java | 10 +++++++++- .../protocol/impl/connection/ChannelOutboundQueue.java | 9 +++------ .../impl/connection/ConnectionAdapterImpl.java | 3 +-- .../impl/connection/ChannelOutboundQueueTest.java | 4 ++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/EnhancedMessageTypeKey.java b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/EnhancedMessageTypeKey.java index a2157210..d2ce5a91 100644 --- a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/EnhancedMessageTypeKey.java +++ b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/EnhancedMessageTypeKey.java @@ -28,6 +28,14 @@ public class EnhancedMessageTypeKey extends MessageTypeKey { this.msgType2 = msgType2; } + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((msgType2 == null) ? 0 : msgType2.hashCode()); + return result; + } + @Override public boolean equals(Object obj) { if (this == obj) { @@ -55,4 +63,4 @@ public class EnhancedMessageTypeKey extends MessageTypeKey { public String toString() { return super.toString() + " msgType2: " + msgType2.getName(); } -} \ No newline at end of file +} diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueue.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueue.java index 6937a1fb..cc7abcae 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueue.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueue.java @@ -96,9 +96,9 @@ final class ChannelOutboundQueue extends ChannelInboundHandlerAdapter { private final Queue> queue; private final long maxWorkTime; private final Channel channel; - private InetSocketAddress address; + private final InetSocketAddress address; - public ChannelOutboundQueue(final Channel channel, final int queueDepth) { + public ChannelOutboundQueue(final Channel channel, final int queueDepth, final InetSocketAddress address) { Preconditions.checkArgument(queueDepth > 0, "Queue depth has to be positive"); /* @@ -110,6 +110,7 @@ final class ChannelOutboundQueue extends ChannelInboundHandlerAdapter { this.queue = new LinkedBlockingQueue<>(queueDepth); this.channel = Preconditions.checkNotNull(channel); this.maxWorkTime = TimeUnit.MICROSECONDS.toNanos(DEFAULT_WORKTIME_MICROS); + this.address = address; } /** @@ -276,8 +277,4 @@ final class ChannelOutboundQueue extends ChannelInboundHandlerAdapter { public String toString() { return String.format("Channel %s queue [%s messages flushing=%s]", channel, queue.size(), flushScheduled); } - - public void setAddress(InetSocketAddress address) { - this.address = address; - } } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java index 19baa930..33b600f9 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java @@ -130,8 +130,7 @@ public class ConnectionAdapterImpl implements ConnectionFacade { .expireAfterWrite(RPC_RESPONSE_EXPIRATION, TimeUnit.MINUTES) .removalListener(REMOVAL_LISTENER).build(); this.channel = Preconditions.checkNotNull(channel); - this.output = new ChannelOutboundQueue(channel, DEFAULT_QUEUE_DEPTH); - output.setAddress(address); + this.output = new ChannelOutboundQueue(channel, DEFAULT_QUEUE_DEPTH, address); channel.pipeline().addLast(output); LOG.debug("ConnectionAdapter created"); } diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueueTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueueTest.java index 060072d5..7017eae2 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueueTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/connection/ChannelOutboundQueueTest.java @@ -35,7 +35,7 @@ public class ChannelOutboundQueueTest { */ @Test(expected=IllegalArgumentException.class) public void testIncorrectQueueCreation() { - new ChannelOutboundQueue(channel, 0); + new ChannelOutboundQueue(channel, 0, null); } /** @@ -43,7 +43,7 @@ public class ChannelOutboundQueueTest { */ @Test public void testEnqueue() { - ChannelOutboundQueue queue = new ChannelOutboundQueue(channel, 1); + ChannelOutboundQueue queue = new ChannelOutboundQueue(channel, 1, null); boolean enqueued = queue.enqueue(new SimpleRpcListener("INPUT", "Failed to send INPUT")); Assert.assertTrue("Enqueue problem", enqueued); enqueued = queue.enqueue(new SimpleRpcListener("INPUT", "Failed to send INPUT")); -- 2.36.6