You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/07/27 16:30:43 UTC
svn commit: r1754311 [1/2] - in /qpid/java/trunk:
broker-core/src/main/java/org/apache/qpid/server/
broker-core/src/main/java/org/apache/qpid/server/configuration/store/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/...
Author: rgodfrey
Date: Wed Jul 27 16:30:42 2016
New Revision: 1754311
URL: http://svn.apache.org/viewvc?rev=1754311&view=rev
Log:
QPID-7365 : Allow SystemConfig to be used for other models - not just Brokers
Added:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfigBootstrapModel.java
- copied, changed from r1754025, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerImpl.java
- copied, changed from r1754310, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerImplTest.java
- copied, changed from r1754310, qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerAdapterTest.java
Removed:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerAdapterTest.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/GenericStoreUpgrader.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerMemoryLoggerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
qpid/java/trunk/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeTest.java
qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java Wed Jul 27 16:30:42 2016
@@ -204,7 +204,7 @@ public class Broker
_systemPrincipal,
options.convertToSystemConfigAttributes());
_systemConfig.open();
- if (_systemConfig.getBroker().getState() == State.ERRORED)
+ if (_systemConfig.getChild(org.apache.qpid.server.model.Broker.class).getState() == State.ERRORED)
{
throw new RuntimeException("Closing broker as it cannot operate due to errors");
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java Wed Jul 27 16:30:42 2016
@@ -44,7 +44,7 @@ import org.apache.qpid.server.model.Prot
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.adapter.BrokerAdapter;
+import org.apache.qpid.server.model.adapter.BrokerImpl;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
import org.apache.qpid.server.store.DurableConfigurationStore;
@@ -248,7 +248,7 @@ public class ManagementModeStoreHandler
attributes.put(Port.PORT, port);
attributes.put(Port.PROTOCOLS, Collections.singleton(protocol));
attributes.put(Port.NAME, MANAGEMENT_MODE_PORT_PREFIX + protocol.name());
- attributes.put(Port.AUTHENTICATION_PROVIDER, BrokerAdapter.MANAGEMENT_MODE_AUTHENTICATION);
+ attributes.put(Port.AUTHENTICATION_PROVIDER, BrokerImpl.MANAGEMENT_MODE_AUTHENTICATION);
ConfiguredObjectRecord portEntry = new ConfiguredObjectRecordImpl(UUID.randomUUID(), PORT_TYPE, attributes,
Collections.singletonMap(parent.getType(),parent.getId()));
if (LOGGER.isDebugEnabled())
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Wed Jul 27 16:30:42 2016
@@ -75,7 +75,6 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.configuration.updater.Task;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.model.preferences.UserPreferences;
-import org.apache.qpid.server.model.preferences.UserPreferencesImpl;
import org.apache.qpid.server.security.AccessControl;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.SecurityToken;
@@ -142,7 +141,7 @@ public abstract class AbstractConfigured
private final Class<? extends ConfiguredObject> _category;
private final Class<? extends ConfiguredObject> _typeClass;
private final Class<? extends ConfiguredObject> _bestFitInterface;
- private final Model _model;
+ private volatile Model _model;
private final boolean _managesChildStorage;
@@ -320,12 +319,7 @@ public abstract class AbstractConfigured
attributes.put(TYPE, _type);
}
- for (Class<? extends ConfiguredObject> childClass : getModel().getChildTypes(getCategoryClass()))
- {
- _children.put(childClass, new CopyOnWriteArrayList<ConfiguredObject<?>>());
- _childrenById.put(childClass, new ConcurrentHashMap<UUID, ConfiguredObject<?>>());
- _childrenByName.put(childClass, new ConcurrentHashMap<String, ConfiguredObject<?>>());
- }
+ populateChildTypeMaps();
for(Map.Entry<Class<? extends ConfiguredObject>, ConfiguredObject<?>> entry : parents.entrySet())
{
@@ -380,6 +374,33 @@ public abstract class AbstractConfigured
}
}
+ protected final void updateModel(Model model)
+ {
+ if(this instanceof DynamicModel && _children.isEmpty() && _model.getChildTypes(getCategoryClass()).isEmpty() && Model.isSpecialization(_model, model, getCategoryClass()))
+ {
+ _model = model;
+ populateChildTypeMaps();
+ }
+ else
+ {
+ throw new IllegalStateException("Cannot change the model of a class which does not implement DynamicModel, or has defined child types");
+ }
+ }
+
+ private void populateChildTypeMaps()
+ {
+ if(!(_children.isEmpty() && _childrenById.isEmpty() && _childrenByName.isEmpty()))
+ {
+ throw new IllegalStateException("Cannot update the child type maps on a class with pre-existing child types");
+ }
+ for (Class<? extends ConfiguredObject> childClass : getModel().getChildTypes(getCategoryClass()))
+ {
+ _children.put(childClass, new CopyOnWriteArrayList<ConfiguredObject<?>>());
+ _childrenById.put(childClass, new ConcurrentHashMap<UUID, ConfiguredObject<?>>());
+ _childrenByName.put(childClass, new ConcurrentHashMap<String, ConfiguredObject<?>>());
+ }
+ }
+
private boolean managesChildren(final Class<? extends ConfiguredObject> clazz)
{
return clazz.getAnnotation(ManagedObject.class).managesChildren();
@@ -1545,7 +1566,7 @@ public abstract class AbstractConfigured
@Override
public final ConfiguredObjectFactory getObjectFactory()
{
- return _model.getObjectFactory();
+ return getModel().getObjectFactory();
}
@Override
@@ -1890,7 +1911,7 @@ public abstract class AbstractConfigured
public final Collection<String> getAttributeNames()
{
- return _model.getTypeRegistry().getAttributeNames(getClass());
+ return getTypeRegistry().getAttributeNames(getClass());
}
@Override
@@ -2245,7 +2266,8 @@ public abstract class AbstractConfigured
@Override
public <C extends ConfiguredObject> Collection<C> getChildren(final Class<C> clazz)
{
- return Collections.unmodifiableList((List<? extends C>) _children.get(clazz));
+ Collection<ConfiguredObject<?>> children = _children.get(clazz);
+ return Collections.unmodifiableList((List<? extends C>) children);
}
@Override
@@ -2789,8 +2811,8 @@ public abstract class AbstractConfigured
return (ConfiguredObject<?>) Proxy.newProxyInstance(getClass().getClassLoader(),
new Class<?>[]{category},
new AuthorisationProxyInvocationHandler(attributes,
- getModel().getTypeRegistry().getAttributeTypes(category),
- category, parent, otherParents));
+ getTypeRegistry().getAttributeTypes(category),
+ category, parent, otherParents));
}
protected final <C extends ConfiguredObject<?>> void authoriseCreateChild(Class<C> childClass, Map<String, Object> attributes, ConfiguredObject... otherParents) throws AccessControlException
@@ -3043,7 +3065,7 @@ public abstract class AbstractConfigured
@Override
public Map<String, Object> getStatistics()
{
- Collection<ConfiguredObjectStatistic> stats = _model.getTypeRegistry().getStatistics(getClass());
+ Collection<ConfiguredObjectStatistic> stats = getTypeRegistry().getStatistics(getClass());
Map<String,Object> map = new HashMap<>();
for(ConfiguredObjectStatistic stat : stats)
{
@@ -3082,7 +3104,7 @@ public abstract class AbstractConfigured
@Override
public Set<String> getContextKeys(final boolean excludeSystem)
{
- Map<String,String> inheritedContext = new HashMap<>(_model.getTypeRegistry().getDefaultContext());
+ Map<String,String> inheritedContext = new HashMap<>(getTypeRegistry().getDefaultContext());
if(!excludeSystem)
{
inheritedContext.putAll(System.getenv());
@@ -3092,6 +3114,11 @@ public abstract class AbstractConfigured
return Collections.unmodifiableSet(inheritedContext.keySet());
}
+ private ConfiguredObjectTypeRegistry getTypeRegistry()
+ {
+ return getModel().getTypeRegistry();
+ }
+
private OwnAttributeResolver getOwnAttributeResolver()
{
return _ownAttributeResolver;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java Wed Jul 27 16:30:42 2016
@@ -28,9 +28,11 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.security.Principal;
import java.security.PrivilegedAction;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
@@ -55,10 +57,10 @@ import org.apache.qpid.server.logging.Me
import org.apache.qpid.server.logging.SystemOutMessageLogger;
import org.apache.qpid.server.logging.messages.BrokerMessages;
import org.apache.qpid.server.plugin.QpidServiceLoader;
-import org.apache.qpid.server.store.BrokerStoreUpgraderAndRecoverer;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import org.apache.qpid.server.store.ConfiguredObjectRecordConverter;
import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
import org.apache.qpid.server.store.preferences.NoopPreferenceStoreFactoryService;
import org.apache.qpid.server.store.preferences.PreferenceStore;
import org.apache.qpid.server.store.preferences.PreferenceStoreAttributes;
@@ -66,7 +68,7 @@ import org.apache.qpid.server.store.pref
import org.apache.qpid.server.util.ServerScopedRuntimeException;
public abstract class AbstractSystemConfig<X extends SystemConfig<X>>
- extends AbstractConfiguredObject<X> implements SystemConfig<X>
+ extends AbstractConfiguredObject<X> implements SystemConfig<X>, DynamicModel
{
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSystemConfig.class);
@@ -100,6 +102,9 @@ public abstract class AbstractSystemConf
@ManagedAttributeField
private PreferenceStoreAttributes _preferenceStoreAttributes;
+ @ManagedAttributeField
+ private String _defaultContainerType;
+
private final Thread _shutdownHook = new Thread(new ShutdownService(), "QpidBrokerShutdownHook");
public AbstractSystemConfig(final TaskExecutor taskExecutor,
@@ -109,7 +114,7 @@ public abstract class AbstractSystemConf
{
super(parentsMap(),
updateAttributes(attributes),
- taskExecutor, BrokerModel.getInstance());
+ taskExecutor, SystemConfigBootstrapModel.getInstance());
_eventLogger = eventLogger;
_systemPrincipal = systemPrincipal;
getTaskExecutor().start();
@@ -180,9 +185,9 @@ public abstract class AbstractSystemConf
}
@Override
- public Broker getBroker()
+ public <C extends ConfiguredObject<C>> C getChild(Class<C> childClass)
{
- Collection<Broker> children = getChildren(Broker.class);
+ Collection<C> children = getChildren(childClass);
if(children == null || children.isEmpty())
{
return null;
@@ -194,6 +199,7 @@ public abstract class AbstractSystemConf
return children.iterator().next();
}
+
@Override
protected void onOpen()
{
@@ -217,66 +223,136 @@ public abstract class AbstractSystemConf
protected ListenableFuture<Void> activate()
{
final EventLogger eventLogger = _eventLogger;
+ final EventLogger startupLogger = initiateStartupLogging();
- final EventLogger startupLogger;
- if (isStartupLoggedToSystemOut())
+
+ try
{
- //Create the composite (logging+SystemOut MessageLogger to be used during startup
- MessageLogger[] messageLoggers = {new SystemOutMessageLogger(), eventLogger.getMessageLogger()};
+ final Container<?> container = initateStoreAndRecovery();
+
+ container.setEventLogger(startupLogger);
+ final SettableFuture<Void> returnVal = SettableFuture.create();
+ Futures.addCallback(container.openAsync(), new FutureCallback()
+ {
+ @Override
+ public void onSuccess(final Object result)
+ {
+ State state = container.getState();
+ if (state == State.ACTIVE)
+ {
+ startupLogger.message(BrokerMessages.READY());
+ container.setEventLogger(eventLogger);
+ returnVal.set(null);
+ }
+ else
+ {
+ returnVal.setException(new ServerScopedRuntimeException("Broker failed reach ACTIVE state (state is " + state + ")"));
+ }
+ }
+
+ @Override
+ public void onFailure(final Throwable t)
+ {
+ returnVal.setException(t);
+ }
+ }, getTaskExecutor()
+ );
+
+ return returnVal;
+ }
+ catch (IOException e)
+ {
+ throw new IllegalArgumentException(e);
+ }
+
+
+ }
+
+ private Container<?> initateStoreAndRecovery() throws IOException
+ {
+ ConfiguredObjectRecord[] initialRecords = convertToConfigurationRecords(getInitialConfigurationLocation()
+ );
+ final DurableConfigurationStore store = getConfigurationStore();
+ final List<ConfiguredObjectRecord> records = new ArrayList<>();
+
+ boolean isNew = store.openConfigurationStore(new ConfiguredObjectRecordHandler()
+ {
+ @Override
+ public void handle(final ConfiguredObjectRecord record)
+ {
+ records.add(record);
+ }
+ }, initialRecords);
+
+ String containerTypeName = getDefaultContainerType();
+ for(ConfiguredObjectRecord record : records)
+ {
+ if(record.getParents() == null || record.getParents().isEmpty())
+ {
+ containerTypeName = record.getType();
+ break;
+ }
+ }
+ QpidServiceLoader loader = new QpidServiceLoader();
+ final ContainerType<?> containerType = loader.getInstancesByType(ContainerType.class).get(containerTypeName);
+
+ if(containerType != null)
+ {
+ updateModel(containerType.getModel());
+ containerType.getRecoverer(this).upgradeAndRecover(records);
- CompositeStartupMessageLogger startupMessageLogger = new CompositeStartupMessageLogger(messageLoggers);
- startupLogger = new EventLogger(startupMessageLogger);
}
else
{
- startupLogger = eventLogger;
+ throw new IllegalConfigurationException("Unknown container type '" + containerTypeName + "'");
}
+ final Class categoryClass = containerType.getCategoryClass();
+ return (Container<?>) getChild(categoryClass);
+ }
+
+
+ @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.QUIESCED)
+ protected ListenableFuture<Void> startQuiesced()
+ {
+ final EventLogger startupLogger = initiateStartupLogging();
- BrokerStoreUpgraderAndRecoverer upgrader = new BrokerStoreUpgraderAndRecoverer(this);
try
{
- upgrader.perform(convertToConfigurationRecords(getInitialConfigurationLocation(),
- this));
+ final Container<?> container = initateStoreAndRecovery();
+
+ container.setEventLogger(startupLogger);
+ return Futures.immediateFuture(null);
}
catch (IOException e)
{
throw new IllegalArgumentException(e);
}
- final Broker broker = getBroker();
- broker.setEventLogger(startupLogger);
- final SettableFuture<Void> returnVal = SettableFuture.create();
- Futures.addCallback(broker.openAsync(), new FutureCallback()
- {
- @Override
- public void onSuccess(final Object result)
- {
- State state = broker.getState();
- if (state == State.ACTIVE)
- {
- startupLogger.message(BrokerMessages.READY());
- broker.setEventLogger(eventLogger);
- returnVal.set(null);
- }
- else
- {
- returnVal.setException(new ServerScopedRuntimeException("Broker failed reach ACTIVE state (state is " + state + ")"));
- }
- }
+ }
- @Override
- public void onFailure(final Throwable t)
- {
- returnVal.setException(t);
- }
- }, getTaskExecutor()
- );
+ private EventLogger initiateStartupLogging()
+ {
+ final EventLogger eventLogger = _eventLogger;
- return returnVal;
+ final EventLogger startupLogger;
+ if (isStartupLoggedToSystemOut())
+ {
+ //Create the composite (logging+SystemOut MessageLogger to be used during startup
+ MessageLogger[] messageLoggers = {new SystemOutMessageLogger(), eventLogger.getMessageLogger()};
+
+ CompositeStartupMessageLogger startupMessageLogger = new CompositeStartupMessageLogger(messageLoggers);
+ startupLogger = new EventLogger(startupMessageLogger);
+ }
+ else
+ {
+ startupLogger = eventLogger;
+ }
+ return startupLogger;
}
+
@Override
protected final boolean rethrowRuntimeExceptionsOnOpen()
{
@@ -291,10 +367,9 @@ public abstract class AbstractSystemConf
return _configurationStore;
}
- private ConfiguredObjectRecord[] convertToConfigurationRecords(final String initialConfigurationLocation,
- final SystemConfig systemConfig) throws IOException
+ private ConfiguredObjectRecord[] convertToConfigurationRecords(final String initialConfigurationLocation) throws IOException
{
- ConfiguredObjectRecordConverter converter = new ConfiguredObjectRecordConverter(BrokerModel.getInstance());
+ ConfiguredObjectRecordConverter converter = new ConfiguredObjectRecordConverter(getModel());
Reader reader;
@@ -311,8 +386,7 @@ public abstract class AbstractSystemConf
try
{
Collection<ConfiguredObjectRecord> records =
- converter.readFromJson(org.apache.qpid.server.model.Broker.class,
- systemConfig, reader);
+ converter.readFromJson(null, this, reader);
return records.toArray(new ConfiguredObjectRecord[records.size()]);
}
finally
@@ -324,6 +398,12 @@ public abstract class AbstractSystemConf
}
@Override
+ public String getDefaultContainerType()
+ {
+ return _defaultContainerType;
+ }
+
+ @Override
public boolean isManagementMode()
{
return _managementMode;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Wed Jul 27 16:30:42 2016
@@ -30,12 +30,13 @@ import java.util.concurrent.TimeUnit;
import org.apache.qpid.configuration.CommonProperties;
import org.apache.qpid.server.logging.EventLogger;
import org.apache.qpid.server.logging.EventLoggerProvider;
-import org.apache.qpid.server.model.adapter.BrokerAdapter;
+import org.apache.qpid.server.model.adapter.BrokerImpl;
import org.apache.qpid.server.stats.StatisticsGatherer;
-@ManagedObject( defaultType = "Broker" )
-public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>, EventLoggerProvider, StatisticsGatherer
+@ManagedObject( defaultType = Broker.BROKER_TYPE)
+public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>, EventLoggerProvider, StatisticsGatherer, Container<X>
{
+ String BROKER_TYPE = "Broker";
String BUILD_VERSION = "buildVersion";
String OPERATING_SYSTEM = "operatingSystem";
@@ -80,7 +81,7 @@ public interface Broker<X extends Broker
String DEFAULT_HTTP_PORT_NUMBER = "8080";
@ManagedContextDefault(name = BROKER_FLOW_TO_DISK_THRESHOLD)
- long DEFAULT_FLOW_TO_DISK_THRESHOLD = (long)(0.4 * (double) BrokerAdapter.getMaxDirectMemorySize());
+ long DEFAULT_FLOW_TO_DISK_THRESHOLD = (long)(0.4 * (double) BrokerImpl.getMaxDirectMemorySize());
@ManagedContextDefault(name = CHANNEL_FLOW_CONTROL_ENFORCEMENT_TIMEOUT)
long DEFAULT_CHANNEL_FLOW_CONTROL_ENFORCEMENT_TIMEOUT = 5000l;
@@ -169,7 +170,7 @@ public interface Broker<X extends Broker
@ManagedContextDefault(name = BROKER_DIRECT_BYTE_BUFFER_POOL_SIZE)
int DEFAULT_BROKER_DIRECT_BYTE_BUFFER_POOL_SIZE = 1024;
- @ManagedAttribute(validValues = {"org.apache.qpid.server.model.adapter.BrokerAdapter#getAvailableConfigurationEncrypters()"})
+ @ManagedAttribute(validValues = {"org.apache.qpid.server.model.adapter.BrokerImpl#getAvailableConfigurationEncrypters()"})
String getConfidentialConfigurationEncryptionProvider();
@DerivedAttribute( persist = true )
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java?rev=1754311&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java Wed Jul 27 16:30:42 2016
@@ -0,0 +1,53 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+import org.apache.qpid.server.plugin.PluggableService;
+import org.apache.qpid.server.store.BrokerStoreUpgraderAndRecoverer;
+
+@PluggableService
+public class BrokerContainerType implements ContainerType<Broker>
+{
+
+ @Override
+ public String getType()
+ {
+ return Broker.BROKER_TYPE;
+ }
+
+ @Override
+ public Class<Broker> getCategoryClass()
+ {
+ return Broker.class;
+ }
+
+ @Override
+ public Model getModel()
+ {
+ return BrokerModel.getInstance();
+ }
+
+ @Override
+ public ContainerStoreUpgraderAndRecoverer<Broker> getRecoverer(final SystemConfig<?> systemConfig)
+ {
+ return new BrokerStoreUpgraderAndRecoverer(systemConfig);
+ }
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerContainerType.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java?rev=1754311&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java Wed Jul 27 16:30:42 2016
@@ -0,0 +1,28 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+import org.apache.qpid.server.logging.EventLogger;
+
+public interface Container<C extends ConfiguredObject<C>> extends ConfiguredObject<C>
+{
+ void setEventLogger(EventLogger startupLogger);
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Container.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java?rev=1754311&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java Wed Jul 27 16:30:42 2016
@@ -0,0 +1,30 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+import java.util.List;
+
+import org.apache.qpid.server.store.ConfiguredObjectRecord;
+
+public interface ContainerStoreUpgraderAndRecoverer<C extends Container>
+{
+ C upgradeAndRecover(List<ConfiguredObjectRecord> records);
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerStoreUpgraderAndRecoverer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java?rev=1754311&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java Wed Jul 27 16:30:42 2016
@@ -0,0 +1,31 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+import org.apache.qpid.server.plugin.Pluggable;
+
+public interface ContainerType<C extends Container> extends Pluggable
+{
+
+ Class<C> getCategoryClass();
+ Model getModel();
+ ContainerStoreUpgraderAndRecoverer<C> getRecoverer(SystemConfig<?> systemConfig);
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContainerType.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java?rev=1754311&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java Wed Jul 27 16:30:42 2016
@@ -0,0 +1,26 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+public interface DynamicModel
+{
+ String getDefaultContainerType();
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/DynamicModel.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java Wed Jul 27 16:30:42 2016
@@ -51,6 +51,6 @@ public class JsonSystemConfigImpl extend
protected JsonFileConfigStore createStoreObject()
{
- return new JsonFileConfigStore(Broker.class);
+ return new JsonFileConfigStore(null);
}
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java Wed Jul 27 16:30:42 2016
@@ -21,6 +21,7 @@
package org.apache.qpid.server.model;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -192,4 +193,28 @@ public abstract class Model
public abstract ConfiguredObjectTypeRegistry getTypeRegistry();
+ public static boolean isSpecialization(final Model model,
+ final Model specialization,
+ final Class<? extends ConfiguredObject> specializationPoint)
+ {
+ if(model.getSupportedCategories().contains(specializationPoint)
+ && specialization.getSupportedCategories().containsAll(model.getSupportedCategories())
+ && model.getChildTypes(specializationPoint).isEmpty())
+ {
+ final Collection<Class<? extends ConfiguredObject>> modelSupportedCategories = new ArrayList<>(model.getSupportedCategories());
+ modelSupportedCategories.remove(specializationPoint);
+ for(Class<? extends ConfiguredObject> category : modelSupportedCategories)
+ {
+ if(!model.getChildTypes(category).equals(specialization.getChildTypes(category)))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java Wed Jul 27 16:30:42 2016
@@ -43,6 +43,9 @@ public interface SystemConfig<X extends
@ManagedContextDefault(name = BrokerProperties.POSIX_FILE_PERMISSIONS)
String DEFAULT_POSIX_FILE_PERMISSIONS = "rw-r-----";
+ @ManagedAttribute(immutable = true, defaultValue = Broker.BROKER_TYPE)
+ String getDefaultContainerType();
+
@ManagedAttribute(defaultValue = "false")
boolean isManagementMode();
@@ -67,7 +70,7 @@ public interface SystemConfig<X extends
EventLogger getEventLogger();
- Broker getBroker();
+ <C extends ConfiguredObject<C>> C getChild(Class<C> childClass);
DurableConfigurationStore getConfigurationStore();
}
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfigBootstrapModel.java (from r1754025, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfigBootstrapModel.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfigBootstrapModel.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java&r1=1754025&r2=1754311&rev=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfigBootstrapModel.java Wed Jul 27 16:30:42 2016
@@ -32,92 +32,23 @@ import org.apache.qpid.server.plugin.Con
import org.apache.qpid.server.plugin.ConfiguredObjectRegistration;
import org.apache.qpid.server.plugin.QpidServiceLoader;
-public final class BrokerModel extends Model
+public final class SystemConfigBootstrapModel extends Model
{
- /*
- * API version for the broker model
- *
- * 1.0 Initial version
- * 1.1 Addition of mandatory virtual host type / different types of virtual host
- * 1.3 Truststore/Keystore type => trustStoreType / type => keyStoreType
- * 1.4 Separate messageStoreSettings from virtualhost
- * 2.0 Introduce VirtualHostNode as a child of a Broker instead of VirtualHost
- * 3.0 Add VH aliases;
- * Remove Broker#supportedVirtualHostNodeTypes, #supportedVirtualHostTypes, #supportedAuthenticationProviders,
- * supportedPreferencesProviderTypes, VH#supportedExchangeTypes, VH#supportedQueueTypes
- * Renamed FileTrustStore/FileKeyStore.path => FileTrustStore/FileKeyStore.storeUrl
- * 6.0 Add BrokerLogger as a child of Broker
- * Replace the defaultVirtualHost (at Broker) with defaultVirtualHostNode flag (at VHN)
- * Make Connections children of Ports instead of VHosts
- * Bring model version and Qpid version into sync
- * 6.1 Remove JMX
- */
- public static final int MODEL_MAJOR_VERSION = 6;
- public static final int MODEL_MINOR_VERSION = 1;
+ public static final int MODEL_MAJOR_VERSION = 1;
+ public static final int MODEL_MINOR_VERSION = 0;
public static final String MODEL_VERSION = MODEL_MAJOR_VERSION + "." + MODEL_MINOR_VERSION;
- private static final Model MODEL_INSTANCE = new BrokerModel();
- private final Map<Class<? extends ConfiguredObject>, Collection<Class<? extends ConfiguredObject>>> _parents =
- new HashMap<Class<? extends ConfiguredObject>, Collection<Class<? extends ConfiguredObject>>>();
+ private static final Model MODEL_INSTANCE = new SystemConfigBootstrapModel();
- private final Map<Class<? extends ConfiguredObject>, Collection<Class<? extends ConfiguredObject>>> _children =
- new HashMap<Class<? extends ConfiguredObject>, Collection<Class<? extends ConfiguredObject>>>();
-
- private final Set<Class<? extends ConfiguredObject>> _supportedTypes =
- new HashSet<Class<? extends ConfiguredObject>>();
private final ConfiguredObjectTypeRegistry _typeRegistry;
private Class<? extends ConfiguredObject> _rootCategory;
private final ConfiguredObjectFactory _objectFactory;
- private BrokerModel()
+ private SystemConfigBootstrapModel()
{
setRootCategory(SystemConfig.class);
- addRelationship(SystemConfig.class, Broker.class);
-
- addRelationship(Broker.class, BrokerLogger.class);
- addRelationship(Broker.class, VirtualHostNode.class);
- addRelationship(Broker.class, TrustStore.class);
- addRelationship(Broker.class, KeyStore.class);
- addRelationship(Broker.class, Port.class);
- addRelationship(Broker.class, AccessControlProvider.class);
- addRelationship(Broker.class, AuthenticationProvider.class);
- addRelationship(Broker.class, GroupProvider.class);
- addRelationship(Broker.class, Plugin.class);
-
- addRelationship(BrokerLogger.class, BrokerLogInclusionRule.class);
-
- addRelationship(VirtualHostNode.class, VirtualHost.class);
- addRelationship(VirtualHostNode.class, RemoteReplicationNode.class);
-
- addRelationship(VirtualHost.class, VirtualHostLogger.class);
- addRelationship(VirtualHost.class, VirtualHostAccessControlProvider.class);
- addRelationship(VirtualHost.class, Exchange.class);
- addRelationship(VirtualHost.class, Queue.class);
-
- addRelationship(VirtualHostLogger.class, VirtualHostLogInclusionRule.class);
-
- addRelationship(Port.class, VirtualHostAlias.class);
- addRelationship(Port.class, Connection.class);
-
- addRelationship(AuthenticationProvider.class, User.class);
- addRelationship(AuthenticationProvider.class, PreferencesProvider.class);
-
- addRelationship(GroupProvider.class, Group.class);
- addRelationship(Group.class, GroupMember.class);
-
- addRelationship(Connection.class, Session.class);
-
- addRelationship(Queue.class, Binding.class);
- addRelationship(Queue.class, Consumer.class);
-
- addRelationship(Exchange.class, Binding.class);
- addRelationship(Exchange.class, Publisher.class);
-
- addRelationship(Session.class, Consumer.class);
- addRelationship(Session.class, Publisher.class);
-
_objectFactory = new ConfiguredObjectFactoryImpl(this);
_typeRegistry = new ConfiguredObjectTypeRegistry((new QpidServiceLoader()).instancesOf(ConfiguredObjectRegistration.class),
(new QpidServiceLoader()).instancesOf(ConfiguredObjectAttributeInjector.class),
@@ -144,9 +75,7 @@ public final class BrokerModel extends M
public Collection<Class<? extends ConfiguredObject>> getParentTypes(Class<? extends ConfiguredObject> child)
{
- Collection<Class<? extends ConfiguredObject>> parentTypes = _parents.get(child);
- return parentTypes == null ? Collections.<Class<? extends ConfiguredObject>>emptyList()
- : Collections.unmodifiableCollection(parentTypes);
+ return Collections.<Class<? extends ConfiguredObject>>emptyList();
}
@Override
@@ -169,43 +98,19 @@ public final class BrokerModel extends M
public Collection<Class<? extends ConfiguredObject>> getChildTypes(Class<? extends ConfiguredObject> parent)
{
- Collection<Class<? extends ConfiguredObject>> childTypes = _children.get(parent);
- return childTypes == null ? Collections.<Class<? extends ConfiguredObject>>emptyList()
- : Collections.unmodifiableCollection(childTypes);
+ return Collections.<Class<? extends ConfiguredObject>>emptyList();
}
@Override
public Collection<Class<? extends ConfiguredObject>> getSupportedCategories()
{
- return Collections.unmodifiableSet(_supportedTypes);
+ return Collections.unmodifiableSet(Collections.<Class<? extends ConfiguredObject>>singleton(SystemConfig.class));
}
- public void setRootCategory(final Class<? extends ConfiguredObject> rootCategory)
+ private void setRootCategory(final Class<? extends ConfiguredObject> rootCategory)
{
_rootCategory = rootCategory;
}
- private void addRelationship(Class<? extends ConfiguredObject> parent, Class<? extends ConfiguredObject> child)
- {
- Collection<Class<? extends ConfiguredObject>> parents = _parents.get(child);
- if (parents == null)
- {
- parents = new ArrayList<Class<? extends ConfiguredObject>>();
- _parents.put(child, parents);
- }
- parents.add(parent);
-
- Collection<Class<? extends ConfiguredObject>> children = _children.get(parent);
- if (children == null)
- {
- children = new ArrayList<Class<? extends ConfiguredObject>>();
- _children.put(parent, children);
- }
- children.add(child);
-
- _supportedTypes.add(parent);
- _supportedTypes.add(child);
-
- }
}
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerImpl.java (from r1754310, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerImpl.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerImpl.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java&r1=1754310&r2=1754311&rev=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerImpl.java Wed Jul 27 16:30:42 2016
@@ -102,9 +102,9 @@ import org.apache.qpid.server.virtualhos
import org.apache.qpid.util.SystemUtils;
@ManagedObject( category = false, type = "Broker" )
-public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> implements Broker<BrokerAdapter>, StatisticsGatherer
+public class BrokerImpl extends AbstractConfiguredObject<BrokerImpl> implements Broker<BrokerImpl>, StatisticsGatherer
{
- private static final Logger LOGGER = LoggerFactory.getLogger(BrokerAdapter.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(BrokerImpl.class);
private static final Pattern MODEL_VERSION_PATTERN = Pattern.compile("^\\d+\\.\\d+$");
@@ -204,8 +204,8 @@ public class BrokerAdapter extends Abstr
private String _helpURL;
@ManagedObjectFactoryConstructor
- public BrokerAdapter(Map<String, Object> attributes,
- SystemConfig parent)
+ public BrokerImpl(Map<String, Object> attributes,
+ SystemConfig parent)
{
super(parentsMap(parent), attributes);
_parent = parent;
@@ -1517,7 +1517,7 @@ public class BrokerAdapter extends Abstr
@Override
public Broker<?> getBroker()
{
- return BrokerAdapter.this;
+ return BrokerImpl.this;
}
}
@@ -1538,7 +1538,7 @@ public class BrokerAdapter extends Abstr
if(object.getCategoryClass() == Broker.class && child.getCategoryClass() == AccessControlProvider.class)
{
child.addChangeListener(this);
- BrokerAdapter.this.updateAccessControl();
+ BrokerImpl.this.updateAccessControl();
}
}
@@ -1547,7 +1547,7 @@ public class BrokerAdapter extends Abstr
{
if(object.getCategoryClass() == Broker.class && child.getCategoryClass() == AccessControlProvider.class)
{
- BrokerAdapter.this.updateAccessControl();
+ BrokerImpl.this.updateAccessControl();
}
}
@@ -1559,7 +1559,7 @@ public class BrokerAdapter extends Abstr
{
if(object.getCategoryClass() == AccessControlProvider.class && !_bulkChanges.contains(object))
{
- BrokerAdapter.this.updateAccessControl();
+ BrokerImpl.this.updateAccessControl();
}
}
@@ -1578,7 +1578,7 @@ public class BrokerAdapter extends Abstr
if(object.getCategoryClass() == AccessControlProvider.class)
{
_bulkChanges.remove(object);
- BrokerAdapter.this.updateAccessControl();
+ BrokerImpl.this.updateAccessControl();
}
}
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java Wed Jul 27 16:30:42 2016
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.store;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -39,12 +40,14 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.logging.LogLevel;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ContainerStoreUpgraderAndRecoverer;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
import org.apache.qpid.server.util.Action;
-public class BrokerStoreUpgraderAndRecoverer
+public class BrokerStoreUpgraderAndRecoverer implements ContainerStoreUpgraderAndRecoverer<Broker>
{
private static final Logger LOGGER = LoggerFactory.getLogger(BrokerStoreUpgraderAndRecoverer.class);
@@ -910,14 +913,15 @@ public class BrokerStoreUpgraderAndRecov
return brokerRecord;
}
- public Broker<?> perform(final ConfiguredObjectRecord... initialRecords)
+ public Broker<?> upgradeAndRecover(List<ConfiguredObjectRecord> records)
{
final DurableConfigurationStore store = _systemConfig.getConfigurationStore();
- List<ConfiguredObjectRecord> upgradedRecords = upgrade(store, initialRecords);
+
+ List<ConfiguredObjectRecord> upgradedRecords = upgrade(store, records);
new GenericRecoverer(_systemConfig).recover(upgradedRecords, false);
final StoreConfigurationChangeListener configChangeListener = new StoreConfigurationChangeListener(store);
- applyRecursively(_systemConfig.getBroker(), new RecursiveAction<ConfiguredObject<?>>()
+ applyRecursively(_systemConfig.getChild(Broker.class), new RecursiveAction<ConfiguredObject<?>>()
{
@Override
public void performAction(final ConfiguredObject<?> object)
@@ -932,14 +936,14 @@ public class BrokerStoreUpgraderAndRecov
}
});
- return _systemConfig.getBroker();
+ return _systemConfig.getChild(Broker.class);
}
List<ConfiguredObjectRecord> upgrade(final DurableConfigurationStore store,
- final ConfiguredObjectRecord... initialRecords)
+ final List<ConfiguredObjectRecord> records)
{
GenericStoreUpgrader upgrader = new GenericStoreUpgrader(Broker.class.getSimpleName(), Broker.MODEL_VERSION, store, _upgraders);
- boolean isNew = upgrader.upgrade(initialRecords);
+ upgrader.upgrade(records);
return upgrader.getRecords();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java Wed Jul 27 16:30:42 2016
@@ -34,11 +34,16 @@ import com.fasterxml.jackson.core.JsonPa
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ContainerType;
+import org.apache.qpid.server.model.DynamicModel;
import org.apache.qpid.server.model.Model;
+import org.apache.qpid.server.plugin.QpidServiceLoader;
public class ConfiguredObjectRecordConverter
{
- private final Model _model;
+ private Model _model;
+ private Class<? extends ConfiguredObject> _rootClass;
+
private static interface NameToIdResolver
{
@@ -50,8 +55,18 @@ public class ConfiguredObjectRecordConve
_model = model;
}
- public Collection<ConfiguredObjectRecord> readFromJson(final Class<? extends ConfiguredObject> rootClass,
- final ConfiguredObject<?> parent, final Reader reader) throws IOException
+ public Class<? extends ConfiguredObject> getRootClass()
+ {
+ return _rootClass;
+ }
+
+ public Model getModel()
+ {
+ return _model;
+ }
+
+ public Collection<ConfiguredObjectRecord> readFromJson(Class<? extends ConfiguredObject> rootClass,
+ ConfiguredObject<?> parent, Reader reader) throws IOException
{
Map<UUID, ConfiguredObjectRecord> objectsById = new HashMap<>();
@@ -60,9 +75,31 @@ public class ConfiguredObjectRecordConve
Map data = objectMapper.readValue(reader, Map.class);
if(!data.isEmpty())
{
+ if(rootClass == null && parent instanceof DynamicModel)
+ {
+ String containerTypeName = ((DynamicModel) parent).getDefaultContainerType();
+ if (data.get(ConfiguredObject.TYPE) instanceof String)
+ {
+ containerTypeName = data.get(ConfiguredObject.TYPE).toString();
+ }
+
+ QpidServiceLoader loader = new QpidServiceLoader();
+ final ContainerType<?> containerType =
+ loader.getInstancesByType(ContainerType.class).get(containerTypeName);
+
+ if (containerType != null)
+ {
+ _model = containerType.getModel();
+ rootClass = containerType.getCategoryClass();
+ }
+ }
+
Collection<NameToIdResolver> unresolved =
loadChild(rootClass, data, parent.getCategoryClass(), parent.getId(), objectsById);
+ _rootClass = rootClass;
+
+
Iterator<NameToIdResolver> iterator = unresolved.iterator();
while(iterator.hasNext())
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/GenericStoreUpgrader.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/GenericStoreUpgrader.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/GenericStoreUpgrader.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/GenericStoreUpgrader.java Wed Jul 27 16:30:42 2016
@@ -58,15 +58,15 @@ public class GenericStoreUpgrader
return new ArrayList<ConfiguredObjectRecord>(_records.values());
}
- public boolean upgrade(final ConfiguredObjectRecord... initialRecords)
+ public void upgrade(List<ConfiguredObjectRecord> records)
{
- RecordCollectionHandler handler = new RecordCollectionHandler();
-
- boolean isNewStore = _store.openConfigurationStore(handler, initialRecords);
-
+ _records.clear();
+ for(ConfiguredObjectRecord record : records)
+ {
+ _records.put(record.getId(), record);
+ }
performUpgrade();
- return isNewStore;
}
private void performUpgrade()
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java Wed Jul 27 16:30:42 2016
@@ -20,9 +20,11 @@
*/
package org.apache.qpid.server.store;
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -43,7 +45,10 @@ import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObjectJacksonModule;
+import org.apache.qpid.server.model.ContainerType;
+import org.apache.qpid.server.model.DynamicModel;
import org.apache.qpid.server.model.Model;
+import org.apache.qpid.server.plugin.QpidServiceLoader;
import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
public class JsonFileConfigStore extends AbstractJsonFileStore implements DurableConfigurationStore
@@ -74,9 +79,9 @@ public class JsonFileConfigStore extends
private final Map<UUID, ConfiguredObjectRecord> _objectsById = new HashMap<UUID, ConfiguredObjectRecord>();
private final Map<String, List<UUID>> _idsByType = new HashMap<String, List<UUID>>();
- private final Class<? extends ConfiguredObject> _rootClass;
+ private volatile Class<? extends ConfiguredObject> _rootClass;
private final ObjectMapper _objectMapper;
- private Map<String,Class<? extends ConfiguredObject>> _classNameMapping;
+ private volatile Map<String,Class<? extends ConfiguredObject>> _classNameMapping;
private ConfiguredObject<?> _parent;
@@ -101,13 +106,14 @@ public class JsonFileConfigStore extends
public void init(ConfiguredObject<?> parent)
{
assertState(State.CLOSED);
- _parent = parent;
- _classNameMapping = generateClassNameMap(_parent.getModel(), _rootClass);
- FileBasedSettings fileBasedSettings = (FileBasedSettings) _parent;
- setup(parent.getName(),
- fileBasedSettings.getStorePath(),
- parent.getContextValue(String.class, BrokerProperties.POSIX_FILE_PERMISSIONS),
- Collections.emptyMap());
+ _parent = parent;
+ _classNameMapping = generateClassNameMap(_parent.getModel(), _rootClass);
+
+ FileBasedSettings fileBasedSettings = (FileBasedSettings) _parent;
+ setup(parent.getName(),
+ fileBasedSettings.getStorePath(),
+ parent.getContextValue(String.class, BrokerProperties.POSIX_FILE_PERMISSIONS),
+ Collections.emptyMap());
changeState(State.CLOSED, State.CONFIGURED);
}
@@ -155,11 +161,45 @@ public class JsonFileConfigStore extends
records = configuredObjectRecordConverter.readFromJson(_rootClass, _parent, new FileReader(configFile));
+ if(_rootClass == null)
+ {
+ _rootClass = configuredObjectRecordConverter.getRootClass();
+ _classNameMapping = generateClassNameMap(configuredObjectRecordConverter.getModel(), _rootClass);
+ }
+
if(records.isEmpty())
{
LOGGER.debug("File contains no records - using initial configuration");
records = Arrays.asList(initialRecords);
updated = true;
+ if (_rootClass == null)
+ {
+ String containerTypeName = ((DynamicModel) _parent).getDefaultContainerType();
+ ConfiguredObjectRecord rootRecord = null;
+ for(ConfiguredObjectRecord record : records)
+ {
+ if(record.getParents() == null || record.getParents().isEmpty())
+ {
+ rootRecord = record;
+ break;
+ }
+ }
+ if (rootRecord != null && rootRecord.getAttributes().get(ConfiguredObject.TYPE) instanceof String)
+ {
+ containerTypeName = rootRecord.getAttributes().get(ConfiguredObject.TYPE).toString();
+ }
+
+ QpidServiceLoader loader = new QpidServiceLoader();
+ final ContainerType<?> containerType =
+ loader.getInstancesByType(ContainerType.class).get(containerTypeName);
+
+ if (containerType != null)
+ {
+ _rootClass = containerType.getCategoryClass();
+ _classNameMapping = generateClassNameMap(containerType.getModel(), containerType.getCategoryClass());
+ }
+
+ }
}
for(ConfiguredObjectRecord record : records)
@@ -459,13 +499,16 @@ public class JsonFileConfigStore extends
final Class<? extends ConfiguredObject> clazz)
{
Map<String,Class<? extends ConfiguredObject>>map = new HashMap<String, Class<? extends ConfiguredObject>>();
- map.put(clazz.getSimpleName(), clazz);
- Collection<Class<? extends ConfiguredObject>> childClasses = model.getChildTypes(clazz);
- if(childClasses != null)
+ if(clazz != null)
{
- for(Class<? extends ConfiguredObject> childClass : childClasses)
+ map.put(clazz.getSimpleName(), clazz);
+ Collection<Class<? extends ConfiguredObject>> childClasses = model.getChildTypes(clazz);
+ if (childClasses != null)
{
- map.putAll(generateClassNameMap(model, childClass));
+ for (Class<? extends ConfiguredObject> childClass : childClasses)
+ {
+ map.putAll(generateClassNameMap(model, childClass));
+ }
}
}
return map;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java Wed Jul 27 16:30:42 2016
@@ -577,11 +577,21 @@ public class VirtualHostStoreUpgraderAnd
final ConfiguredObjectRecord... initialRecords)
{
String virtualHostCategory = VirtualHost.class.getSimpleName();
+ final List<ConfiguredObjectRecord> records = new ArrayList<>();
+ boolean isNew = durableConfigurationStore.openConfigurationStore(new ConfiguredObjectRecordHandler()
+ {
+ @Override
+ public void handle(final ConfiguredObjectRecord record)
+ {
+ records.add(record);
+ }
+ }, initialRecords);
+
GenericStoreUpgrader upgraderHandler = new GenericStoreUpgrader(virtualHostCategory, VirtualHost.MODEL_VERSION, durableConfigurationStore, _upgraders);
- boolean isNew = upgraderHandler.upgrade(initialRecords);
+ upgraderHandler.upgrade(records);
- List<ConfiguredObjectRecord> records = upgraderHandler.getRecords();
- recover(durableConfigurationStore, records, isNew);
+ List<ConfiguredObjectRecord> upgradedRecords = upgraderHandler.getRecords();
+ recover(durableConfigurationStore, upgradedRecords, isNew);
return isNew;
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerTest.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerTest.java Wed Jul 27 16:30:42 2016
@@ -106,7 +106,8 @@ public class BrokerTest extends QpidTest
{
String startupConsoleAppenderLogPrefix = getTestName() + "__$$ ";
byte[] outputBytes = startBrokerAndCollectSystemOutput(startupConsoleAppenderLogPrefix);
- assertFalse("Detected unexpected startup console appender prefix", new String(outputBytes).contains(startupConsoleAppenderLogPrefix));
+ String outputString = new String(outputBytes);
+ assertFalse("Detected unexpected startup console appender prefix", outputString.contains(startupConsoleAppenderLogPrefix));
}
public void testConsoleLogsOnUnsuccessfulStartup() throws Exception
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandlerTest.java Wed Jul 27 16:30:42 2016
@@ -36,6 +36,8 @@ import java.util.HashSet;
import java.util.Map;
import java.util.UUID;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
import org.mockito.ArgumentCaptor;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -52,6 +54,7 @@ import org.apache.qpid.server.model.Json
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.StateTransition;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -141,6 +144,12 @@ public class ManagementModeStoreHandlerT
protected void onClose()
{
}
+
+ @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.QUIESCED)
+ protected ListenableFuture<Void> startQuiesced()
+ {
+ return Futures.immediateFuture(null);
+ }
};
_systemConfig.open();
return new ManagementModeStoreHandler(_store, _systemConfig);
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerMemoryLoggerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerMemoryLoggerTest.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerMemoryLoggerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerMemoryLoggerTest.java Wed Jul 27 16:30:42 2016
@@ -38,6 +38,7 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.BrokerModel;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.JsonSystemConfigImpl;
+import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import org.apache.qpid.server.store.GenericRecoverer;
@@ -60,7 +61,13 @@ public class BrokerMemoryLoggerTest exte
_taskExecutor.start();
_systemConfig = new JsonSystemConfigImpl(_taskExecutor,
mock(EventLogger.class),
- null, new BrokerOptions().convertToSystemConfigAttributes());
+ null, new BrokerOptions().convertToSystemConfigAttributes())
+ {
+ {
+ updateModel(BrokerModel.getInstance());
+ }
+ };
+
when(_brokerEntry.getId()).thenReturn(_brokerId);
when(_brokerEntry.getType()).thenReturn(Broker.class.getSimpleName());
@@ -79,7 +86,7 @@ public class BrokerMemoryLoggerTest exte
final String brokerLoggerName = "TestBrokerLogger";
ch.qos.logback.classic.Logger rootLogger =
(ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
- Broker broker = _systemConfig.getBroker();
+ Broker broker = _systemConfig.getChild(Broker.class);
Map<String, Object> attributes = new HashMap<>();
attributes.put(ConfiguredObject.NAME, brokerLoggerName);
attributes.put(ConfiguredObject.TYPE, BrokerMemoryLogger.TYPE);
@@ -107,7 +114,7 @@ public class BrokerMemoryLoggerTest exte
{
final String brokerLoggerName = "TestBrokerLogger";
- Broker broker = _systemConfig.getBroker();
+ Broker broker = _systemConfig.getChild(Broker.class);
Map<String, Object> attributes = new HashMap<>();
attributes.put(ConfiguredObject.NAME, brokerLoggerName);
attributes.put(ConfiguredObject.TYPE, BrokerMemoryLogger.TYPE);
Copied: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerImplTest.java (from r1754310, qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerAdapterTest.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerImplTest.java?p2=qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerImplTest.java&p1=qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerAdapterTest.java&r1=1754310&r2=1754311&rev=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerAdapterTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/BrokerImplTest.java Wed Jul 27 16:30:42 2016
@@ -44,11 +44,11 @@ import org.apache.qpid.server.virtualhos
import org.apache.qpid.test.utils.QpidTestCase;
-public class BrokerAdapterTest extends QpidTestCase
+public class BrokerImplTest extends QpidTestCase
{
private TaskExecutorImpl _taskExecutor;
private SystemConfig _systemConfig;
- private BrokerAdapter _brokerAdapter;
+ private BrokerImpl _brokerImpl;
@Override
public void setUp() throws Exception
@@ -72,9 +72,9 @@ public class BrokerAdapterTest extends Q
{
try
{
- if (_brokerAdapter != null)
+ if (_brokerImpl != null)
{
- _brokerAdapter.close();
+ _brokerImpl.close();
}
if (_taskExecutor != null)
@@ -122,14 +122,14 @@ public class BrokerAdapterTest extends Q
// testing unsuccessful case
attributes.put(Broker.CONTEXT, Collections.singletonMap(Broker.NETWORK_BUFFER_SIZE, Broker.MINIMUM_NETWORK_BUFFER_SIZE - 1));
- _brokerAdapter = new BrokerAdapter(attributes, _systemConfig);
- _brokerAdapter.open();
+ _brokerImpl = new BrokerImpl(attributes, _systemConfig);
+ _brokerImpl.open();
assertEquals("Broker open should fail with network buffer size less then minimum",
State.ERRORED,
- _brokerAdapter.getState());
+ _brokerImpl.getState());
assertEquals("Unexpected buffer size",
Broker.DEFAULT_NETWORK_BUFFER_SIZE,
- _brokerAdapter.getNetworkBufferSize());
+ _brokerImpl.getNetworkBufferSize());
}
private void doAssignTargetSizeTest(final long[] virtualHostQueueSizes, final long flowToDiskThreshold)
@@ -139,17 +139,17 @@ public class BrokerAdapterTest extends Q
attributes.put(Broker.MODEL_VERSION, BrokerModel.MODEL_VERSION);
attributes.put(Broker.DURABLE, true);
attributes.put("context", Collections.singletonMap(Broker.BROKER_FLOW_TO_DISK_THRESHOLD, flowToDiskThreshold));
- _brokerAdapter = new BrokerAdapter(attributes, _systemConfig);
- _brokerAdapter.open();
- assertEquals("Unexpected broker state", State.ACTIVE, _brokerAdapter.getState());
+ _brokerImpl = new BrokerImpl(attributes, _systemConfig);
+ _brokerImpl.open();
+ assertEquals("Unexpected broker state", State.ACTIVE, _brokerImpl.getState());
for(int i=0; i < virtualHostQueueSizes.length; i++)
{
- createVhnWithVh(_brokerAdapter, i, virtualHostQueueSizes[i]);
+ createVhnWithVh(_brokerImpl, i, virtualHostQueueSizes[i]);
}
long totalAssignedTargetSize = 0;
- for(VirtualHostNode<?> vhn : _brokerAdapter.getVirtualHostNodes())
+ for(VirtualHostNode<?> vhn : _brokerImpl.getVirtualHostNodes())
{
long targetSize = vhn.getVirtualHost().getTargetSize();
assertTrue("A virtualhost's target size cannot be zero", targetSize > 0);
@@ -157,18 +157,18 @@ public class BrokerAdapterTest extends Q
}
long diff = Math.abs(flowToDiskThreshold - totalAssignedTargetSize);
- long tolerance = _brokerAdapter.getVirtualHostNodes().size() * 2;
+ long tolerance = _brokerImpl.getVirtualHostNodes().size() * 2;
assertTrue(String.format("Assigned target size not within expected tolerance. Diff %d Tolerance %d", diff, tolerance), diff < tolerance);
}
- private void createVhnWithVh(final BrokerAdapter brokerAdapter, int nameSuffix, final long totalQueueSize)
+ private void createVhnWithVh(final BrokerImpl brokerImpl, int nameSuffix, final long totalQueueSize)
{
final Map<String, Object> vhnAttributes = new HashMap<>();
vhnAttributes.put(VirtualHostNode.TYPE, TestVirtualHostNode.VIRTUAL_HOST_NODE_TYPE);
vhnAttributes.put(VirtualHostNode.NAME, "testVhn" + nameSuffix);
final DurableConfigurationStore store = mock(DurableConfigurationStore.class);
- TestVirtualHostNode vhn = new TestVirtualHostNode(brokerAdapter, vhnAttributes, store);
+ TestVirtualHostNode vhn = new TestVirtualHostNode(brokerImpl, vhnAttributes, store);
vhn.create();
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java?rev=1754311&r1=1754310&r2=1754311&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java Wed Jul 27 16:30:42 2016
@@ -39,6 +39,7 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.model.JsonSystemConfigImpl;
+import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.SystemConfig;
@@ -63,7 +64,13 @@ public class BrokerRecovererTest extends
_taskExecutor.start();
_systemConfig = new JsonSystemConfigImpl(_taskExecutor,
mock(EventLogger.class),
- null, new BrokerOptions().convertToSystemConfigAttributes());
+ null, new BrokerOptions().convertToSystemConfigAttributes())
+ {
+
+ {
+ updateModel(BrokerModel.getInstance());
+ }
+ };
when(_brokerEntry.getId()).thenReturn(_brokerId);
when(_brokerEntry.getType()).thenReturn(Broker.class.getSimpleName());
@@ -114,7 +121,7 @@ public class BrokerRecovererTest extends
when(_brokerEntry.getAttributes()).thenReturn(entryAttributes);
resolveObjects(_brokerEntry);
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
assertNotNull(broker);
@@ -173,7 +180,7 @@ public class BrokerRecovererTest extends
portId,
5672,
"authProvider"));
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
assertNotNull(broker);
@@ -187,7 +194,7 @@ public class BrokerRecovererTest extends
UUID authProviderId = UUID.randomUUID();
resolveObjects(_brokerEntry, createAuthProviderRecord(authProviderId, "authProvider"));
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
assertNotNull(broker);
@@ -209,7 +216,7 @@ public class BrokerRecovererTest extends
createPortRecord(portId, 5672, "authProvider"),
createAuthProviderRecord(authProvider2Id, "authProvider2"),
createPortRecord(port2Id, 5673, "authProvider2"));
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
assertNotNull(broker);
@@ -227,7 +234,7 @@ public class BrokerRecovererTest extends
UUID authProviderId = UUID.randomUUID();
resolveObjects(_brokerEntry, createGroupProviderRecord(authProviderId, "groupProvider"));
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
assertNotNull(broker);
@@ -250,7 +257,7 @@ public class BrokerRecovererTest extends
when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
resolveObjects(_brokerEntry);
- Broker<?> broker = _systemConfig.getBroker();
+ Broker<?> broker = _systemConfig.getChild(Broker.class);
broker.open();
assertEquals("Unexpected broker state", State.ERRORED, broker.getState());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org