make MessageBus interface extend Disposable

This commit is contained in:
Gregory.Shrago
2017-10-09 18:33:33 +03:00
parent 5050784411
commit 5b19bb7b45
6 changed files with 18 additions and 19 deletions
@@ -140,7 +140,7 @@ public class MockComponentManager extends UserDataHolderBase implements Componen
@Override
public void dispose() {
myMessageBus.dispose();
Disposer.dispose(myMessageBus);
myDisposed = true;
}
@@ -276,7 +276,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements
myDisposeCompleted = true;
if (myMessageBus != null) {
myMessageBus.dispose();
Disposer.dispose(myMessageBus);
myMessageBus = null;
}
@@ -15,14 +15,11 @@
*/
package com.intellij.util;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.Topic;
import org.jetbrains.annotations.NotNull;
public class MessageBusUtil {
private static <T> Runnable createPublisherRunnable(final Project project, final Topic<T> topic, final Consumer<T> listener) {
@@ -42,13 +39,4 @@ public class MessageBusUtil {
}
}
@NotNull
public static Disposable newMessageBusDisposer(@NotNull final MessageBus messageBus) {
return new Disposable() {
@Override
public void dispose() {
messageBus.dispose();
}
};
}
}
@@ -20,6 +20,7 @@
package com.intellij.util.messages;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.util.ConcurrencyUtil;
@@ -95,7 +96,7 @@ public class MessageBusTest extends TestCase {
@Override
protected void tearDown() throws Exception {
try {
myBus.dispose();
Disposer.dispose(myBus);
}
finally {
myBus = null;
@@ -343,7 +344,7 @@ public class MessageBusTest extends TestCase {
public void t11() {
myLog.add("root 11");
myBus.syncPublisher(TOPIC1).t12();
child.dispose();
Disposer.dispose(child);
}
@Override
@@ -35,7 +35,7 @@ import org.jetbrains.annotations.Nullable;
* <p/>
* Please see <a href="Wiki">http://confluence.jetbrains.net/display/IDEADEV/IntelliJ+IDEA+Messaging+infrastructure</a>.
*/
public interface MessageBus {
public interface MessageBus extends Disposable {
/**
* Messages buses can be organised into hierarchies. That allows facilities {@link Topic#getBroadcastDirection() broadcasting}.
@@ -141,6 +141,11 @@ public interface MessageBus {
*/
void dispose();
/**
* Returns true if this bus is disposed.
*/
boolean isDisposed();
/**
* @return true when events in the given topic are being dispatched in the current thread,
* and not all listeners have received the events yet.
@@ -262,9 +262,10 @@ public class MessageBusImpl implements MessageBus {
@Override
public void dispose() {
checkNotDisposed();
myDisposed = true;
for (MessageBusImpl childBus : myChildBuses) {
childBus.dispose();
Disposer.dispose(childBus);
}
Disposer.dispose(myConnectionDisposable);
@@ -280,7 +281,11 @@ public class MessageBusImpl implements MessageBus {
else {
asRoot().myWaitingBuses.remove();
}
myDisposed = true;
}
@Override
public boolean isDisposed() {
return myDisposed;
}
@Override