You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2016/12/19 13:14:04 UTC
svn commit: r1775080 - 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/
broker-core/src/test/resources/configuration/
Author: orudyy
Date: Mon Dec 19 13:14:04 2016
New Revision: 1775080
URL: http://svn.apache.org/viewvc?rev=1775080&view=rev
Log:
QPID-7548: [Java Broker] Fix upgrade issues from model versions 3.0 and 6.0
merged from trunk using
svn merge -c 1774564,1774885 ^/qpid/java/trunk
Added:
qpid/java/branches/6.1.x/broker-core/src/test/resources/configuration/
- copied from r1774564, qpid/java/trunk/broker-core/src/test/resources/configuration/
Removed:
qpid/java/branches/6.1.x/broker-core/src/test/resources/configuration/broker-config-1.0.json
qpid/java/branches/6.1.x/broker-core/src/test/resources/configuration/broker-config-latest.json
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/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
Propchange: qpid/java/branches/6.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 19 13:14:04 2016
@@ -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,1772241,1772574,1773057,1774039,1774446
+/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,1772241,1772574,1773057,1774039,1774446,1774564,1774885
/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=1775080&r1=1775079&r2=1775080&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 Mon Dec 19 13:14:04 2016
@@ -353,7 +353,6 @@ public class BrokerStoreUpgraderAndRecov
addLogger(record, "memory", "Memory");
addLogger(record, "logfile", "File");
- getNextUpgrader().configuredObject(record);
}
else if (record.getType().equals("VirtualHostNode"))
{
@@ -366,8 +365,6 @@ public class BrokerStoreUpgraderAndRecov
String nodeName = (String) record.getAttributes().get("name");
_knownNonBdbHaVirtualHostNode.put(nodeName, record);
}
- getNextUpgrader().configuredObject(record);
-
}
else if (record.getType().equals("Port") && "AMQP".equals(record.getAttributes().get("type")))
{
@@ -378,9 +375,9 @@ public class BrokerStoreUpgraderAndRecov
updatedAttributes.remove("sendBufferSize");
record = new ConfiguredObjectRecordImpl(record.getId(), record.getType(), updatedAttributes, record.getParents());
getUpdateMap().put(record.getId(), record);
- getNextUpgrader().configuredObject(record);
}
}
+ getNextUpgrader().configuredObject(record);
}
private void addLogger(final ConfiguredObjectRecord record, String name, String type)
@@ -565,8 +562,8 @@ public class BrokerStoreUpgraderAndRecov
}
record = new ConfiguredObjectRecordImpl(record.getId(), record.getType(), updatedAttributes, record.getParents());
getUpdateMap().put(record.getId(), record);
- getNextUpgrader().configuredObject(record);
}
+ getNextUpgrader().configuredObject(record);
}
@Override
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=1775080&r1=1775079&r2=1775080&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 Mon Dec 19 13:14:04 2016
@@ -33,6 +33,7 @@ import java.util.UUID;
import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.BrokerModel;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.JsonSystemConfigImpl;
@@ -137,16 +138,9 @@ public class BrokerStoreUpgraderAndRecov
private List<ConfiguredObjectRecord> upgrade(final DurableConfigurationStore dcs,
final BrokerStoreUpgraderAndRecoverer recoverer)
{
- final List<ConfiguredObjectRecord> records = new ArrayList<>();
- dcs.openConfigurationStore(new ConfiguredObjectRecordHandler()
- {
- @Override
- public void handle(final ConfiguredObjectRecord record)
- {
- records.add(record);
- }
- });
- return recoverer.upgrade(dcs, records);
+ RecordRetrievingConfiguredObjectRecordHandler handler = new RecordRetrievingConfiguredObjectRecordHandler();
+ dcs.openConfigurationStore(handler);
+ return recoverer.upgrade(dcs, handler.getRecords());
}
public void testUpgradeVirtualHostWithJDBCStoreAndDefaultPool()
@@ -668,6 +662,119 @@ public class BrokerStoreUpgraderAndRecov
authenticationProviders.get(0).getAttributes().containsKey("preferencesproviders"));
}
+ public void testUpgradeTrustStoreRecordsFrom_6_0() throws Exception
+ {
+ _brokerRecord.getAttributes().put("modelVersion", "6.0");
+ Map<String, UUID> parents = Collections.singletonMap("Broker", _brokerRecord.getId());
+
+ Map<String, Object> trustStoreAttributes1 = new HashMap<>();
+ trustStoreAttributes1.put("name", "truststore1");
+ trustStoreAttributes1.put("type", "FileTrustStore");
+ trustStoreAttributes1.put("path", "${json:test.ssl.resources}/java_broker_truststore1.jks");
+ trustStoreAttributes1.put("password", "password");
+ ConfiguredObjectRecord trustStore1 = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "TrustStore",
+ trustStoreAttributes1,
+ parents);
+
+ Map<String, Object> trustStoreAttributes2 = new HashMap<>();
+ trustStoreAttributes2.put("name", "truststore2");
+ trustStoreAttributes2.put("type", "FileTrustStore");
+ trustStoreAttributes2.put("path", "${json:test.ssl.resources}/java_broker_truststore2.jks");
+ trustStoreAttributes2.put("password", "password");
+ trustStoreAttributes2.put("includedVirtualHostMessageSources", "true");
+ ConfiguredObjectRecord trustStore2 = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "TrustStore",
+ trustStoreAttributes2,
+ parents);
+
+ Map<String, Object> trustStoreAttributes3 = new HashMap<>();
+ trustStoreAttributes3.put("name", "truststore3");
+ trustStoreAttributes3.put("type", "FileTrustStore");
+ trustStoreAttributes3.put("path", "${json:test.ssl.resources}/java_broker_truststore3.jks");
+ trustStoreAttributes3.put("password", "password");
+ trustStoreAttributes3.put("excludedVirtualHostMessageSources", "true");
+ ConfiguredObjectRecord trustStore3 = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "TrustStore",
+ trustStoreAttributes3,
+ parents);
+
+ DurableConfigurationStore dcs = new DurableConfigurationStoreStub(_brokerRecord, trustStore1, trustStore2, trustStore3);
+ BrokerStoreUpgraderAndRecoverer recoverer = new BrokerStoreUpgraderAndRecoverer(_systemConfig);
+ List<ConfiguredObjectRecord> records = upgrade(dcs, recoverer);
+
+ ConfiguredObjectRecord trustStore1Upgraded = findRecordById(trustStore1.getId(), records);
+ ConfiguredObjectRecord trustStore2Upgraded = findRecordById(trustStore2.getId(), records);
+ ConfiguredObjectRecord trustStore3Upgraded = findRecordById(trustStore3.getId(), records);
+
+ assertNotNull("Trust store 1 is not found after upgrade", trustStore1Upgraded);
+ assertNotNull("Trust store 2 is not found after upgrade", trustStore2Upgraded);
+ assertNotNull("Trust store 3 is not found after upgrade", trustStore3Upgraded);
+
+ assertEquals("Unexpected attributes after upgrade for Trust store 1",
+ trustStoreAttributes1,
+ new HashMap<>(trustStore1Upgraded.getAttributes()));
+
+ assertEquals("includedVirtualHostNodeMessageSources is not found",
+ "true",
+ trustStore2Upgraded.getAttributes().get("includedVirtualHostNodeMessageSources"));
+ assertNull("includedVirtualHostMessageSources is found",
+ trustStore2Upgraded.getAttributes().get("includedVirtualHostMessageSources"));
+
+ assertEquals("includedVirtualHostNodeMessageSources is not found",
+ "true",
+ trustStore3Upgraded.getAttributes().get("excludedVirtualHostNodeMessageSources"));
+ assertNull("includedVirtualHostMessageSources is found",
+ trustStore3Upgraded.getAttributes().get("excludedVirtualHostMessageSources"));
+ assertModelVersionUpgraded(records);
+ }
+
+ public void testUpgradeJmxRecordsFrom_3_0() throws Exception
+ {
+ _brokerRecord.getAttributes().put("modelVersion", "3.0");
+ Map<String, UUID> parents = Collections.singletonMap("Broker", _brokerRecord.getId());
+
+ Map<String, Object> jmxPortAttributes = new HashMap<>();
+ jmxPortAttributes.put("name", "jmx1");
+ jmxPortAttributes.put("type", "JMX");
+ ConfiguredObjectRecord jmxPort = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Port",
+ jmxPortAttributes,
+ parents);
+ Map<String, Object> rmiPortAttributes = new HashMap<>();
+ rmiPortAttributes.put("name", "rmi1");
+ rmiPortAttributes.put("type", "RMI");
+ ConfiguredObjectRecord rmiPort = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Port",
+ rmiPortAttributes,
+ parents);
+
+ Map<String, Object> jmxPluginAttributes = new HashMap<>();
+ jmxPluginAttributes.put("name", getTestName());
+ jmxPluginAttributes.put("type", "MANAGEMENT-JMX");
+
+ _brokerRecord.getAttributes().put("modelVersion", "6.0");
+
+ ConfiguredObjectRecord jmxManagement = new ConfiguredObjectRecordImpl(UUID.randomUUID(),
+ "Plugin",
+ jmxPluginAttributes,
+ parents);
+
+ DurableConfigurationStore dcs = new DurableConfigurationStoreStub(_brokerRecord, jmxPort, rmiPort, jmxManagement);
+
+ BrokerStoreUpgraderAndRecoverer recoverer = new BrokerStoreUpgraderAndRecoverer(_systemConfig);
+ List<ConfiguredObjectRecord> records = upgrade(dcs, recoverer);
+
+ assertNull("Jmx port is not removed", findRecordById(jmxPort.getId(), records));
+ assertNull("Rmi port is not removed", findRecordById(rmiPort.getId(), records));
+ assertNull("Jmx plugin is not removed", findRecordById(jmxManagement.getId(), records));
+
+ assertModelVersionUpgraded(records);
+ }
+
+ private void assertModelVersionUpgraded(final List<ConfiguredObjectRecord> records)
+ {
+ ConfiguredObjectRecord upgradedBrokerRecord = findRecordById(_brokerRecord.getId(), records);
+ assertEquals("Unexpected model version",
+ BrokerModel.MODEL_VERSION,
+ upgradedBrokerRecord.getAttributes().get(Broker.MODEL_VERSION));
+ }
+
private void upgradeBrokerRecordAndAssertUpgradeResults()
{
DurableConfigurationStore dcs = new DurableConfigurationStoreStub(_brokerRecord);
@@ -795,4 +902,20 @@ public class BrokerStoreUpgraderAndRecov
}
}
}
+
+ private class RecordRetrievingConfiguredObjectRecordHandler implements ConfiguredObjectRecordHandler
+ {
+ private List<ConfiguredObjectRecord> _records = new ArrayList<>();
+
+ @Override
+ public void handle(final ConfiguredObjectRecord record)
+ {
+ _records.add(record);
+ }
+
+ public List<ConfiguredObjectRecord> getRecords()
+ {
+ return _records;
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org