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.IPublicationErrorHandler;
|
||||||
import net.engio.mbassy.PublicationError;
|
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.bus.publication.IPublicationCommand;
|
||||||
import net.engio.mbassy.common.DeadMessage;
|
import net.engio.mbassy.common.DeadMessage;
|
||||||
import net.engio.mbassy.subscription.Subscription;
|
import net.engio.mbassy.subscription.Subscription;
|
||||||
@ -32,7 +32,7 @@ public abstract class AbstractSyncMessageBus<T, P extends IPublicationCommand> i
|
|||||||
private final BusRuntime runtime;
|
private final BusRuntime runtime;
|
||||||
|
|
||||||
|
|
||||||
public AbstractSyncMessageBus(IBusConfiguration configuration) {
|
public AbstractSyncMessageBus(ISyncBusConfiguration configuration) {
|
||||||
this.runtime = new BusRuntime(this);
|
this.runtime = new BusRuntime(this);
|
||||||
this.runtime.add("error.handlers", getRegisteredErrorHandlers());
|
this.runtime.add("error.handlers", getRegisteredErrorHandlers());
|
||||||
this.subscriptionManager = new SubscriptionManager(configuration.getMetadataReader(),
|
this.subscriptionManager = new SubscriptionManager(configuration.getMetadataReader(),
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package net.engio.mbassy.bus;
|
package net.engio.mbassy.bus;
|
||||||
|
|
||||||
import net.engio.mbassy.PublicationError;
|
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.bus.publication.IPublicationCommand;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -14,7 +14,7 @@ import net.engio.mbassy.bus.publication.IPublicationCommand;
|
|||||||
public class SyncMessageBus<T> extends AbstractSyncMessageBus<T, SyncMessageBus.SyncPostCommand>{
|
public class SyncMessageBus<T> extends AbstractSyncMessageBus<T, SyncMessageBus.SyncPostCommand>{
|
||||||
|
|
||||||
|
|
||||||
public SyncMessageBus(IBusConfiguration configuration) {
|
public SyncMessageBus(ISyncBusConfiguration configuration) {
|
||||||
super(configuration);
|
super(configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package net.engio.mbassy.bus.config;
|
package net.engio.mbassy.bus.config;
|
||||||
|
|
||||||
import net.engio.mbassy.bus.MessagePublication;
|
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.BlockingQueue;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
@ -15,7 +13,7 @@ import java.util.concurrent.ThreadFactory;
|
|||||||
* Time: 9:56 AM
|
* Time: 9:56 AM
|
||||||
* To change this template use File | Settings | File Templates.
|
* To change this template use File | Settings | File Templates.
|
||||||
*/
|
*/
|
||||||
public interface IBusConfiguration {
|
public interface IBusConfiguration extends ISyncBusConfiguration {
|
||||||
|
|
||||||
int getNumberOfMessageDispatchers();
|
int getNumberOfMessageDispatchers();
|
||||||
|
|
||||||
@ -23,12 +21,6 @@ public interface IBusConfiguration {
|
|||||||
|
|
||||||
BlockingQueue<MessagePublication> getPendingMessagesQueue();
|
BlockingQueue<MessagePublication> getPendingMessagesQueue();
|
||||||
|
|
||||||
MessagePublication.Factory getMessagePublicationFactory();
|
|
||||||
|
|
||||||
MetadataReader getMetadataReader();
|
|
||||||
|
|
||||||
SubscriptionFactory getSubscriptionFactory();
|
|
||||||
|
|
||||||
ThreadFactory getThreadFactoryForAsynchronousMessageDispatch();
|
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
|
* @author bennidi
|
||||||
* Date: 3/29/13
|
* Date: 3/29/13
|
||||||
*/
|
*/
|
||||||
public class SyncBusConfiguration<Config extends SyncBusConfiguration<Config>> {
|
public class SyncBusConfiguration<C extends SyncBusConfiguration<C>> implements ISyncBusConfiguration {
|
||||||
|
|
||||||
protected SubscriptionFactory subscriptionFactory;
|
protected SubscriptionFactory subscriptionFactory;
|
||||||
protected MetadataReader metadataReader;
|
protected MetadataReader metadataReader;
|
||||||
@ -34,17 +34,17 @@ public class SyncBusConfiguration<Config extends SyncBusConfiguration<Config>> {
|
|||||||
return metadataReader;
|
return metadataReader;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Config setMetadataReader(MetadataReader metadataReader) {
|
public C setMetadataReader(MetadataReader metadataReader) {
|
||||||
this.metadataReader = metadataReader;
|
this.metadataReader = metadataReader;
|
||||||
return (Config)this;
|
return (C) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubscriptionFactory getSubscriptionFactory() {
|
public SubscriptionFactory getSubscriptionFactory() {
|
||||||
return subscriptionFactory;
|
return subscriptionFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Config setSubscriptionFactory(SubscriptionFactory subscriptionFactory) {
|
public C setSubscriptionFactory(SubscriptionFactory subscriptionFactory) {
|
||||||
this.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.MBassador;
|
||||||
import net.engio.mbassy.bus.SyncMessageBus;
|
import net.engio.mbassy.bus.SyncMessageBus;
|
||||||
import net.engio.mbassy.bus.config.BusConfiguration;
|
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.ConcurrentExecutor;
|
||||||
import net.engio.mbassy.common.ListenerFactory;
|
import net.engio.mbassy.common.ListenerFactory;
|
||||||
import net.engio.mbassy.common.MessageBusTest;
|
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.MessageTypes;
|
||||||
import net.engio.mbassy.messages.MultipartMessage;
|
import net.engio.mbassy.messages.MultipartMessage;
|
||||||
import net.engio.mbassy.messages.StandardMessage;
|
import net.engio.mbassy.messages.StandardMessage;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@ -186,7 +188,7 @@ public abstract class SyncBusTest extends MessageBusTest {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ISyncMessageBus getSyncMessageBus() {
|
protected ISyncMessageBus getSyncMessageBus() {
|
||||||
return new SyncMessageBus(BusConfiguration.Default());
|
return new SyncMessageBus(new SyncBusConfiguration());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user