Merge pull request #52 from durron597/master

Created ISyncBusConfiguration for synchronous only bus.
This commit is contained in:
Benjamin Diedrichsen 2013-10-08 01:47:43 -07:00
commit 6d641f5056
6 changed files with 28 additions and 19 deletions

View File

@ -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(),

View File

@ -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);
} }

View File

@ -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();
} }

View File

@ -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();
}

View File

@ -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;
} }
} }

View File

@ -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());
} }
} }