diff options
7 files changed, 20 insertions, 5 deletions
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedDestinationSession.java b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedDestinationSession.java index e0ab9dbff4f..49057330774 100644 --- a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedDestinationSession.java +++ b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedDestinationSession.java @@ -3,7 +3,6 @@ package com.yahoo.messagebus.shared; import com.yahoo.jdisc.AbstractResource; import com.yahoo.jdisc.ResourceReference; -import java.util.logging.Level; import com.yahoo.messagebus.DestinationSession; import com.yahoo.messagebus.DestinationSessionParams; import com.yahoo.messagebus.EmptyReply; @@ -14,6 +13,7 @@ import com.yahoo.messagebus.MessageHandler; import com.yahoo.messagebus.Reply; import java.util.concurrent.atomic.AtomicReference; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -81,6 +81,8 @@ public class SharedDestinationSession extends AbstractResource implements Messag session.connect(); } + @Override public void disconnect() { session.disconnect(); } + @Override protected void destroy() { log.log(Level.FINE, "Destroying shared destination session."); diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedIntermediateSession.java b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedIntermediateSession.java index 06c6192cb7a..49bf6ba8fb7 100644 --- a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedIntermediateSession.java +++ b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedIntermediateSession.java @@ -3,7 +3,6 @@ package com.yahoo.messagebus.shared; import com.yahoo.jdisc.AbstractResource; import com.yahoo.jdisc.ResourceReference; -import java.util.logging.Level; import com.yahoo.messagebus.EmptyReply; import com.yahoo.messagebus.Error; import com.yahoo.messagebus.ErrorCode; @@ -16,6 +15,7 @@ import com.yahoo.messagebus.ReplyHandler; import com.yahoo.messagebus.Result; import java.util.concurrent.atomic.AtomicReference; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -101,6 +101,9 @@ public class SharedIntermediateSession extends AbstractResource } @Override + public void disconnect() { session.disconnect(); } + + @Override protected void destroy() { log.log(Level.FINE, "Destroying shared intermediate session."); session.destroy(); diff --git a/container-messagebus/src/test/java/com/yahoo/messagebus/jdisc/MbusServerTestCase.java b/container-messagebus/src/test/java/com/yahoo/messagebus/jdisc/MbusServerTestCase.java index 84a722a753f..d8481138a99 100644 --- a/container-messagebus/src/test/java/com/yahoo/messagebus/jdisc/MbusServerTestCase.java +++ b/container-messagebus/src/test/java/com/yahoo/messagebus/jdisc/MbusServerTestCase.java @@ -354,6 +354,8 @@ public class MbusServerTestCase { @Override public void connect() { } + @Override public void disconnect() {} + @Override public ResourceReference refer() { ++refCount; diff --git a/messagebus/abi-spec.json b/messagebus/abi-spec.json index bff28986119..039f22c7525 100644 --- a/messagebus/abi-spec.json +++ b/messagebus/abi-spec.json @@ -73,7 +73,8 @@ "abstract" ], "methods": [ - "public abstract void connect()" + "public abstract void connect()", + "public abstract void disconnect()" ], "fields": [] }, @@ -96,7 +97,8 @@ "public java.lang.String getConnectionSpec()", "public java.lang.String getName()", "public void handleMessage(com.yahoo.messagebus.Message)", - "public void connect()" + "public void connect()", + "public void disconnect()" ], "fields": [] }, @@ -245,7 +247,8 @@ "public java.lang.String getName()", "public void handleMessage(com.yahoo.messagebus.Message)", "public void handleReply(com.yahoo.messagebus.Reply)", - "public void connect()" + "public void connect()", + "public void disconnect()" ], "fields": [] }, diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Connectable.java b/messagebus/src/main/java/com/yahoo/messagebus/Connectable.java index db8d926db43..354548a3cf3 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/Connectable.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/Connectable.java @@ -9,5 +9,6 @@ package com.yahoo.messagebus; public interface Connectable { void connect(); + void disconnect(); } diff --git a/messagebus/src/main/java/com/yahoo/messagebus/DestinationSession.java b/messagebus/src/main/java/com/yahoo/messagebus/DestinationSession.java index 509ea5903c5..10d1a93031d 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/DestinationSession.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/DestinationSession.java @@ -130,4 +130,6 @@ public final class DestinationSession implements Connectable, MessageHandler { mbus.connect(name, broadcastName); } + @Override public void disconnect() { mbus.unregisterSession(name, broadcastName);; } + } diff --git a/messagebus/src/main/java/com/yahoo/messagebus/IntermediateSession.java b/messagebus/src/main/java/com/yahoo/messagebus/IntermediateSession.java index d5b7e045254..1473f40ef0a 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/IntermediateSession.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/IntermediateSession.java @@ -119,4 +119,6 @@ public final class IntermediateSession implements MessageHandler, ReplyHandler, mbus.connect(name, broadcastName); } + @Override public void disconnect() { mbus.unregisterSession(name, broadcastName); } + } |