summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-25 10:46:09 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-25 10:49:53 +0100
commit0c5400db597795c47ac054bb73fe268838383026 (patch)
tree109706b721c5aa73b047ed42c54619d0c96cba06
parent4c676c8e75393a4095307f269381158858b20e43 (diff)
Add disconnect() that unregisters session
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedDestinationSession.java4
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedIntermediateSession.java5
-rw-r--r--container-messagebus/src/test/java/com/yahoo/messagebus/jdisc/MbusServerTestCase.java2
-rw-r--r--messagebus/abi-spec.json9
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/Connectable.java1
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/DestinationSession.java2
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/IntermediateSession.java2
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); }
+
}