You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/01/25 12:53:15 UTC
qpid-proton git commit: PROTON-1105: Enable EventImpl#getTransport()
to succeed in returning a value in more situations.
Repository: qpid-proton
Updated Branches:
refs/heads/master 7e03b1209 -> 490cc0d5b
PROTON-1105: Enable EventImpl#getTransport() to succeed in returning a value in more situations.
This closes #58
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/490cc0d5
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/490cc0d5
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/490cc0d5
Branch: refs/heads/master
Commit: 490cc0d5b72b40c5727c9d1e5a0c246bae9403e7
Parents: 7e03b12
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Jan 25 11:48:51 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Jan 25 11:48:51 2016 +0000
----------------------------------------------------------------------
.../qpid/proton/engine/impl/EventImpl.java | 14 ++-
.../qpid/proton/engine/impl/EventImplTest.java | 119 +++++++++++++++++++
2 files changed, 131 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/490cc0d5/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
index 40f2669..3bcecb5 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/EventImpl.java
@@ -238,9 +238,19 @@ class EventImpl implements Event
if (context instanceof Transport) {
return (Transport) context;
} else if (context instanceof Connection) {
- return ((Connection)context).getTransport();
+ return ((Connection)context).getTransport();
} else {
- return null;
+ Session session = getSession();
+ if (session == null) {
+ return null;
+ }
+
+ Connection connection = session.getConnection();
+ if (connection == null) {
+ return null;
+ }
+
+ return connection.getTransport();
}
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/490cc0d5/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
----------------------------------------------------------------------
diff --git a/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
new file mode 100644
index 0000000..e46f45c
--- /dev/null
+++ b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/EventImplTest.java
@@ -0,0 +1,119 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.proton.engine.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+import org.apache.qpid.proton.engine.Connection;
+import org.apache.qpid.proton.engine.Delivery;
+import org.apache.qpid.proton.engine.Event;
+import org.apache.qpid.proton.engine.EventType;
+import org.apache.qpid.proton.engine.Link;
+import org.apache.qpid.proton.engine.Sender;
+import org.apache.qpid.proton.engine.Session;
+import org.apache.qpid.proton.engine.Transport;
+import org.junit.Test;
+
+public class EventImplTest
+{
+ @Test
+ public void testGetTransportWithConnectionContext()
+ {
+ Transport transport = Transport.Factory.create();
+ Connection connection = Connection.Factory.create();
+ transport.bind(connection);
+
+ EventImpl event = createEvent(connection, Event.Type.CONNECTION_BOUND);
+
+ assertNotNull("No transport returned", event.getTransport());
+ assertSame("Incorrect transport returned", transport, event.getTransport());
+ }
+
+ @Test
+ public void testGetTransportWithTransportContext()
+ {
+ Transport transport = Transport.Factory.create();
+ Connection connection = Connection.Factory.create();
+ transport.bind(connection);
+
+ EventImpl event = createEvent(transport, Event.Type.TRANSPORT);
+
+ assertNotNull("No transport returned", event.getTransport());
+ assertSame("Incorrect transport returned", transport, event.getTransport());
+ }
+
+ @Test
+ public void testGetTransportWithSessionContext()
+ {
+ Transport transport = Transport.Factory.create();
+ Connection connection = Connection.Factory.create();
+ transport.bind(connection);
+
+ Session session = connection.session();
+
+ EventImpl event = createEvent(session, Event.Type.SESSION_INIT);
+
+ assertNotNull("No transport returned", event.getTransport());
+ assertSame("Incorrect transport returned", transport, event.getTransport());
+ }
+
+ @Test
+ public void testGetTransportWithLinkContext()
+ {
+ Transport transport = Transport.Factory.create();
+ Connection connection = Connection.Factory.create();
+ transport.bind(connection);
+
+ Session session = connection.session();
+ Link link = session.receiver("myReceiver");
+
+ EventImpl event = createEvent(link, Event.Type.LINK_INIT);
+
+ assertNotNull("No transport returned", event.getTransport());
+ assertSame("Incorrect transport returned", transport, event.getTransport());
+ }
+
+ @Test
+ public void testGetTransportWithDeliveryContext()
+ {
+ Transport transport = Transport.Factory.create();
+ Connection connection = Connection.Factory.create();
+ transport.bind(connection);
+
+ Session session = connection.session();
+ Sender sender = session.sender("mySender");
+
+ Delivery delivery = sender.delivery("tag".getBytes());
+
+ EventImpl event = createEvent(delivery, Event.Type.DELIVERY);
+
+ assertNotNull("No transport returned", event.getTransport());
+ assertSame("Incorrect transport returned", transport, event.getTransport());
+ }
+
+ EventImpl createEvent(Object context, EventType type)
+ {
+ EventImpl event = new EventImpl();
+ event.init(type, context);
+ return event;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org