From 9d4c74fb74e6206f13ca43718bf922410744d09e Mon Sep 17 00:00:00 2001 From: Robert Davies Date: Thu, 31 Aug 2006 17:32:02 +0000 Subject: [PATCH] git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@438994 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/activemq/broker/BrokerService.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java index 12d0ceaa51..4615075a56 100644 --- a/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java +++ b/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java @@ -34,6 +34,8 @@ import org.apache.activemq.broker.jmx.ManagementContext; import org.apache.activemq.broker.jmx.NetworkConnectorView; import org.apache.activemq.broker.jmx.NetworkConnectorViewMBean; import org.apache.activemq.broker.jmx.ProxyConnectorView; +import org.apache.activemq.broker.region.DestinationFactory; +import org.apache.activemq.broker.region.DestinationFactoryImpl; import org.apache.activemq.broker.region.CompositeDestinationInterceptor; import org.apache.activemq.broker.region.DestinationInterceptor; import org.apache.activemq.broker.region.RegionBroker; @@ -111,6 +113,7 @@ public class BrokerService implements Service, Serializable { private UsageManager memoryManager; private PersistenceAdapter persistenceAdapter; private PersistenceAdapterFactory persistenceFactory; + private DestinationFactory destinationFactory; private MessageAuthorizationPolicy messageAuthorizationPolicy; private List transportConnectors = new CopyOnWriteArrayList(); private List networkConnectors = new CopyOnWriteArrayList(); @@ -532,6 +535,10 @@ public class BrokerService implements Service, Serializable { this.persistenceFactory = persistenceFactory; } + public void setDestinationFactory(DestinationFactory destinationFactory) { + this.destinationFactory = destinationFactory; + } + public boolean isPersistent() { return persistent; } @@ -1106,16 +1113,20 @@ public class BrokerService implements Service, Serializable { else { destinationInterceptor = createDefaultDestinationInterceptor(); } - - RegionBroker regionBroker = null; + RegionBroker regionBroker = null; + if (destinationFactory == null) { + destinationFactory = new DestinationFactoryImpl(getMemoryManager(), getTaskRunnerFactory(), getPersistenceAdapter()); + } if (isUseJmx()) { MBeanServer mbeanServer = getManagementContext().getMBeanServer(); regionBroker = new ManagedRegionBroker(this, mbeanServer, getBrokerObjectName(), getTaskRunnerFactory(), getMemoryManager(), - getPersistenceAdapter(), destinationInterceptor); + destinationFactory, destinationInterceptor); } else { - regionBroker = new RegionBroker(this,getTaskRunnerFactory(), getMemoryManager(), getPersistenceAdapter(), destinationInterceptor); + regionBroker = new RegionBroker(this,getTaskRunnerFactory(), getMemoryManager(), destinationFactory, destinationInterceptor); } + destinationFactory.setRegionBroker(regionBroker); + regionBroker.setKeepDurableSubsActive(keepDurableSubsActive); regionBroker.setBrokerName(getBrokerName()); return regionBroker; @@ -1375,4 +1386,5 @@ public class BrokerService implements Service, Serializable { masterConnector = (MasterConnector) service; } } + }