Created ISyncBusConfiguration
Previously, SyncMessageBus required a full IBusConfiguration, which has lots of methods about threading, etc. However, if you want a purely Sync bus that never uses multithreading, you probably don't want to create all those threads and dispatchers. This change allows you to call `new SyncMessageBus(new SyncBusConfiguration())`.
This commit is contained in:
parent
bc267cde2b
commit
52f52864de
|
@ -2,7 +2,7 @@ package net.engio.mbassy.bus;
|
|||
|
||||
import net.engio.mbassy.IPublicationErrorHandler;
|
||||
import net.engio.mbassy.PublicationError;
|
||||
import net.engio.mbassy.bus.config.IBusConfiguration;
|
||||
import net.engio.mbassy.bus.config.ISyncBusConfiguration;
|
||||
import net.engio.mbassy.bus.publication.IPublicationCommand;
|
||||
import net.engio.mbassy.common.DeadMessage;
|
||||
import net.engio.mbassy.subscription.Subscription;
|
||||
|
@ -32,7 +32,7 @@ public abstract class AbstractSyncMessageBus<T, P extends IPublicationCommand> i
|
|||
private final BusRuntime runtime;
|
||||
|
||||
|
||||
public AbstractSyncMessageBus(IBusConfiguration configuration) {
|
||||
public AbstractSyncMessageBus(ISyncBusConfiguration configuration) {
|
||||
this.runtime = new BusRuntime(this);
|
||||
this.runtime.add("error.handlers", getRegisteredErrorHandlers());
|
||||
this.subscriptionManager = new SubscriptionManager(configuration.getMetadataReader(),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package net.engio.mbassy.bus;
|
||||
|
||||
import net.engio.mbassy.PublicationError;
|
||||
import net.engio.mbassy.bus.config.IBusConfiguration;
|
||||
import net.engio.mbassy.bus.config.ISyncBusConfiguration;
|
||||
import net.engio.mbassy.bus.publication.IPublicationCommand;
|
||||
|
||||
/**
|
||||
|
@ -14,7 +14,7 @@ import net.engio.mbassy.bus.publication.IPublicationCommand;
|
|||
public class SyncMessageBus<T> extends AbstractSyncMessageBus<T, SyncMessageBus.SyncPostCommand>{
|
||||
|
||||
|
||||
public SyncMessageBus(IBusConfiguration configuration) {
|
||||
public SyncMessageBus(ISyncBusConfiguration configuration) {
|
||||
super(configuration);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package net.engio.mbassy.bus.config;
|
||||
|
||||
import net.engio.mbassy.bus.MessagePublication;
|
||||
import net.engio.mbassy.listener.MetadataReader;
|
||||
import net.engio.mbassy.subscription.SubscriptionFactory;
|
||||
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
@ -15,7 +13,7 @@ import java.util.concurrent.ThreadFactory;
|
|||
* Time: 9:56 AM
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public interface IBusConfiguration {
|
||||
public interface IBusConfiguration extends ISyncBusConfiguration {
|
||||
|
||||
int getNumberOfMessageDispatchers();
|
||||
|
||||
|
@ -23,12 +21,6 @@ public interface IBusConfiguration {
|
|||
|
||||
BlockingQueue<MessagePublication> getPendingMessagesQueue();
|
||||
|
||||
MessagePublication.Factory getMessagePublicationFactory();
|
||||
|
||||
MetadataReader getMetadataReader();
|
||||
|
||||
SubscriptionFactory getSubscriptionFactory();
|
||||
|
||||
ThreadFactory getThreadFactoryForAsynchronousMessageDispatch();
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package net.engio.mbassy.bus.config;
|
||||
|
||||
import net.engio.mbassy.bus.MessagePublication;
|
||||
import net.engio.mbassy.listener.MetadataReader;
|
||||
import net.engio.mbassy.subscription.SubscriptionFactory;
|
||||
|
||||
public interface ISyncBusConfiguration {
|
||||
|
||||
MessagePublication.Factory getMessagePublicationFactory();
|
||||
|
||||
MetadataReader getMetadataReader();
|
||||
|
||||
SubscriptionFactory getSubscriptionFactory();
|
||||
|
||||
}
|
|
@ -10,7 +10,7 @@ import net.engio.mbassy.subscription.SubscriptionFactory;
|
|||
* @author bennidi
|
||||
* Date: 3/29/13
|
||||
*/
|
||||
public class SyncBusConfiguration<Config extends SyncBusConfiguration<Config>> {
|
||||
public class SyncBusConfiguration<C extends SyncBusConfiguration<C>> implements ISyncBusConfiguration {
|
||||
|
||||
protected SubscriptionFactory subscriptionFactory;
|
||||
protected MetadataReader metadataReader;
|
||||
|
@ -34,17 +34,17 @@ public class SyncBusConfiguration<Config extends SyncBusConfiguration<Config>> {
|
|||
return metadataReader;
|
||||
}
|
||||
|
||||
public Config setMetadataReader(MetadataReader metadataReader) {
|
||||
public C setMetadataReader(MetadataReader metadataReader) {
|
||||
this.metadataReader = metadataReader;
|
||||
return (Config)this;
|
||||
return (C) this;
|
||||
}
|
||||
|
||||
public SubscriptionFactory getSubscriptionFactory() {
|
||||
return subscriptionFactory;
|
||||
}
|
||||
|
||||
public Config setSubscriptionFactory(SubscriptionFactory subscriptionFactory) {
|
||||
public C setSubscriptionFactory(SubscriptionFactory subscriptionFactory) {
|
||||
this.subscriptionFactory = subscriptionFactory;
|
||||
return (Config)this;
|
||||
return (C) this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import net.engio.mbassy.bus.ISyncMessageBus;
|
|||
import net.engio.mbassy.bus.MBassador;
|
||||
import net.engio.mbassy.bus.SyncMessageBus;
|
||||
import net.engio.mbassy.bus.config.BusConfiguration;
|
||||
import net.engio.mbassy.bus.config.SyncBusConfiguration;
|
||||
import net.engio.mbassy.common.ConcurrentExecutor;
|
||||
import net.engio.mbassy.common.ListenerFactory;
|
||||
import net.engio.mbassy.common.MessageBusTest;
|
||||
|
@ -16,6 +17,7 @@ import net.engio.mbassy.listeners.MessagesListener;
|
|||
import net.engio.mbassy.messages.MessageTypes;
|
||||
import net.engio.mbassy.messages.MultipartMessage;
|
||||
import net.engio.mbassy.messages.StandardMessage;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -186,7 +188,7 @@ public abstract class SyncBusTest extends MessageBusTest {
|
|||
|
||||
@Override
|
||||
protected ISyncMessageBus getSyncMessageBus() {
|
||||
return new SyncMessageBus(BusConfiguration.Default());
|
||||
return new SyncMessageBus(new SyncBusConfiguration());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user