You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/03/07 10:03:00 UTC
svn commit: r1785819 - in /qpid/java/branches/6.1.x: ./
broker-core/src/main/java/org/apache/qpid/server/store/
broker-core/src/test/java/org/apache/qpid/server/store/
Author: lquack
Date: Tue Mar 7 10:02:57 2017
New Revision: 1785819
URL: http://svn.apache.org/viewvc?rev=1785819&view=rev
Log:
QPID-7647: [Java Broker] Fix handling of broker type in configuration
merged from trunk with:
$ svn merge -c1785158,1785311 ^/qpid/java/trunk
Modified:
qpid/java/branches/6.1.x/ (props changed)
qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java
qpid/java/branches/6.1.x/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
Propchange: qpid/java/branches/6.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 7 10:02:57 2017
@@ -9,5 +9,5 @@
/qpid/branches/java-broker-vhost-refactor/java:1493674-1494547
/qpid/branches/java-network-refactor/qpid/java:805429-821809
/qpid/branches/qpid-2935/qpid/java:1061302-1072333
-/qpid/java/trunk:1766544,1766547,1766553,1766666,1766796-1766797,1766806,1767251,1767267-1767268,1767275,1767310,1767326,1767329,1767332,1767514,1767523,1767738,1767825,1767847-1767849,1767882,1767909,1767914,1768016-1768017,1768065,1768643,1768704,1768854,1768875,1768914,1768963,1768967,1768976,1769007,1769009,1769087,1769138-1769139,1769597,1769879,1770236,1770716,1772050,1772241,1772365,1772574,1773057,1774039,1774446,1774564,1774885,1775087,1775100,1777939,1780947,1782302,1782735,1785117,1785269-1785270,1785675,1785679
+/qpid/java/trunk:1766544,1766547,1766553,1766666,1766796-1766797,1766806,1767251,1767267-1767268,1767275,1767310,1767326,1767329,1767332,1767514,1767523,1767738,1767825,1767847-1767849,1767882,1767909,1767914,1768016-1768017,1768065,1768643,1768704,1768854,1768875,1768914,1768963,1768967,1768976,1769007,1769009,1769087,1769138-1769139,1769597,1769879,1770236,1770716,1772050,1772241,1772365,1772574,1773057,1774039,1774446,1774564,1774885,1775087,1775100,1777939,1780947,1782302,1782735,1785117,1785158,1785269-1785270,1785311,1785675,1785679
/qpid/trunk/qpid:796646-796653
Modified: qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java?rev=1785819&r1=1785818&r2=1785819&view=diff
==============================================================================
--- qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java (original)
+++ qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java Tue Mar 7 10:02:57 2017
@@ -342,7 +342,9 @@ public class BrokerStoreUpgraderAndRecov
Map<String, Object> brokerAttributes = new HashMap<>(record.getAttributes());
_defaultVirtualHost = (String)brokerAttributes.remove("defaultVirtualHost");
- if (_defaultVirtualHost != null)
+ boolean typeDetected = brokerAttributes.remove("type") != null;
+
+ if (_defaultVirtualHost != null || typeDetected)
{
record = new ConfiguredObjectRecordImpl(record.getId(),
record.getType(),
Modified: qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java?rev=1785819&r1=1785818&r2=1785819&view=diff
==============================================================================
--- qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java (original)
+++ qpid/java/branches/6.1.x/broker-core/src/main/java/org/apache/qpid/server/store/ConfiguredObjectRecordConverter.java Tue Mar 7 10:02:57 2017
@@ -33,6 +33,7 @@ import java.util.UUID;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ContainerType;
import org.apache.qpid.server.model.DynamicModel;
@@ -77,21 +78,37 @@ public class ConfiguredObjectRecordConve
{
if(rootClass == null && parent instanceof DynamicModel)
{
- String containerTypeName = ((DynamicModel) parent).getDefaultContainerType();
+ String defaultContainerType = ((DynamicModel) parent).getDefaultContainerType();
+ String containerTypeName = defaultContainerType;
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);
+ Map<String, ContainerType> instancesByType = loader.getInstancesByType(ContainerType.class);
+ final ContainerType<?> containerType = instancesByType.get(containerTypeName);
if (containerType != null)
{
_model = containerType.getModel();
rootClass = containerType.getCategoryClass();
}
+ else
+ {
+ // fall back to default container type
+ final ContainerType<?> defaultContainerTypeInstance = instancesByType.get(defaultContainerType);
+ if (defaultContainerTypeInstance != null)
+ {
+ _model = defaultContainerTypeInstance.getModel();
+ rootClass = defaultContainerTypeInstance.getCategoryClass();
+ }
+ else
+ {
+ throw new IllegalConfigurationException(String.format("Cannot identify container type for '%s'",
+ containerType));
+ }
+ }
}
Collection<NameToIdResolver> unresolved =
Modified: qpid/java/branches/6.1.x/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/java/branches/6.1.x/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java?rev=1785819&r1=1785818&r2=1785819&view=diff
==============================================================================
--- qpid/java/branches/6.1.x/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java (original)
+++ qpid/java/branches/6.1.x/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java Tue Mar 7 10:02:57 2017
@@ -467,6 +467,21 @@ public class BrokerStoreUpgraderAndRecov
}
+ public void testUpgradeBrokerType()
+ {
+ _brokerRecord.getAttributes().put("modelVersion", "3.0");
+ _brokerRecord.getAttributes().put("type", "broker");
+
+ DurableConfigurationStore dcs = new DurableConfigurationStoreStub(_brokerRecord);
+
+ BrokerStoreUpgraderAndRecoverer recoverer = new BrokerStoreUpgraderAndRecoverer(_systemConfig);
+ List<ConfiguredObjectRecord> records = upgrade(dcs, recoverer);
+
+ List<ConfiguredObjectRecord> brokerRecords = findRecordByType("Broker", records);
+ assertEquals("Unexpected number of broker records", 1, brokerRecords.size());
+ assertFalse("Unexpected type", brokerRecords.get(0).getAttributes().containsKey("type"));
+ }
+
public void testUpgradeAMQPPortWithNetworkBuffers()
{
Map<String, Object> portAttributes = new HashMap<>();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org