QPID-8415: [Broker-J] Change model version to 8.0
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
index aad9c23..ee078c3 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
@@ -76,9 +76,13 @@
* Attribute OAuth2AuthenticationProvider#clientSecret is not mandatory anymore
* Introduced statistics QueueManagingVirtualHost#totalConnectionCount and QueueManagingVirtualHost#InboundMessageSizeHighWatermark
* BDBHAVirtualHostNode attributes name, groupName, address are made immutable
+ *
+ * 8.0
+ * Added new broker statistics: processCpuTime, processCpuLoad
+ * Added new context variables for queues and exchanges to configure behaviour on unknown declared arguments
*/
- public static final int MODEL_MAJOR_VERSION = 7;
- public static final int MODEL_MINOR_VERSION = 1;
+ public static final int MODEL_MAJOR_VERSION = 8;
+ 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>, Class<? extends ConfiguredObject>> _parents =
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
index cc92f2f..57b989c 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
@@ -68,6 +68,7 @@
register(new Upgrader_6_0_to_6_1());
register(new Upgrader_6_1_to_7_0());
register(new Upgrader_7_0_to_7_1());
+ register(new Upgrader_7_1_to_8_0());
}
private static final class Upgrader_1_0_to_1_1 extends StoreUpgraderPhase
@@ -708,6 +709,30 @@
}
}
+ private class Upgrader_7_1_to_8_0 extends StoreUpgraderPhase
+ {
+
+ public Upgrader_7_1_to_8_0()
+ {
+ super("modelVersion", "7.1", "8.0");
+ }
+
+ @Override
+ public void configuredObject(final ConfiguredObjectRecord record)
+ {
+ if("Broker".equals(record.getType()))
+ {
+ upgradeRootRecord(record);
+ }
+ }
+
+ @Override
+ public void complete()
+ {
+
+ }
+ }
+
private static class VirtualHostEntryUpgrader
{
@SuppressWarnings("serial")
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
index 8b854b9..db16180 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
@@ -77,6 +77,7 @@
register(new Upgrader_6_0_to_6_1());
register(new Upgrader_6_1_to_7_0());
register(new Upgrader_7_0_to_7_1());
+ register(new Upgrader_7_1_to_8_0());
Map<String, UUID> defaultExchangeIds = new HashMap<String, UUID>();
for (String exchangeName : DEFAULT_EXCHANGES.keySet())
@@ -1062,6 +1063,30 @@
}
}
+ private class Upgrader_7_1_to_8_0 extends StoreUpgraderPhase
+ {
+
+ public Upgrader_7_1_to_8_0()
+ {
+ super("modelVersion", "7.1", "8.0");
+ }
+
+ @Override
+ public void configuredObject(final ConfiguredObjectRecord record)
+ {
+ if("VirtualHost".equals(record.getType()))
+ {
+ upgradeRootRecord(record);
+ }
+ }
+
+ @Override
+ public void complete()
+ {
+
+ }
+ }
+
public boolean upgradeAndRecover(final DurableConfigurationStore durableConfigurationStore,
final ConfiguredObjectRecord... initialRecords)
{
diff --git a/broker-core/src/main/resources/initial-config.json b/broker-core/src/main/resources/initial-config.json
index f2a82c1..0d65149 100644
--- a/broker-core/src/main/resources/initial-config.json
+++ b/broker-core/src/main/resources/initial-config.json
@@ -20,7 +20,7 @@
*/
{
"name": "${broker.name}",
- "modelVersion": "7.1",
+ "modelVersion": "8.0",
"authenticationproviders" : [ {
"name" : "plain",
"type" : "Plain",
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/GenericCategoryController.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/GenericCategoryController.java
index 35ff45b..8dafe29 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/GenericCategoryController.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/GenericCategoryController.java
@@ -33,6 +33,8 @@
import org.apache.qpid.server.management.plugin.ManagementController;
import org.apache.qpid.server.management.plugin.ManagementException;
import org.apache.qpid.server.management.plugin.ManagementResponse;
+import org.apache.qpid.server.management.plugin.controller.latest.LatestManagementControllerAdapter;
+import org.apache.qpid.server.model.BrokerModel;
import org.apache.qpid.server.model.ConfiguredObject;
public abstract class GenericCategoryController implements CategoryController
@@ -52,7 +54,11 @@
{
_name = name;
_managementController = managementController;
- _nextVersionManagementController = nextVersionManagementController;
+ boolean isNextLatest = nextVersionManagementController != null &&
+ BrokerModel.MODEL_VERSION.equalsIgnoreCase(nextVersionManagementController.getVersion());
+ _nextVersionManagementController = isNextLatest ?
+ new LatestManagementControllerAdapter(nextVersionManagementController)
+ : nextVersionManagementController;
_defaultType = defaultType;
_typeControllers = typeControllers.stream().collect(Collectors.toMap(TypeController::getTypeName, c -> c));
_nextVersionTypeControllers =
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/LegacyManagementController.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/LegacyManagementController.java
index 4c9f4206..fb8ec3e 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/LegacyManagementController.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/LegacyManagementController.java
@@ -32,8 +32,6 @@
Collection<String> getChildrenCategories(String category);
- Collection<String> getCategories();
-
Collection<String> getCategoryHierarchy(String rootCategory, String category);
CategoryController getCategoryController(String category);
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/latest/LatestManagementControllerFactory.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/latest/LatestManagementControllerFactory.java
index 82ba07e..be5981c 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/latest/LatestManagementControllerFactory.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/latest/LatestManagementControllerFactory.java
@@ -44,7 +44,7 @@
@Override
public String getPreviousVersion()
{
- return "7.0";
+ return "7.1";
}
@Override
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementController.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementController.java
index 44ddf03..5c628a7 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementController.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementController.java
@@ -23,15 +23,11 @@
import static org.apache.qpid.server.management.plugin.controller.ConverterHelper.getIntParameterFromRequest;
import static org.apache.qpid.server.management.plugin.controller.ConverterHelper.getParameter;
-import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.stream.Collectors;
import org.apache.qpid.server.management.plugin.ManagementController;
import org.apache.qpid.server.management.plugin.controller.AbstractLegacyConfiguredObjectController;
-import org.apache.qpid.server.management.plugin.controller.LegacyConfiguredObject;
public class LegacyManagementController extends AbstractLegacyConfiguredObjectController
{
@@ -44,9 +40,10 @@
private static final int DEFAULT_DEPTH = 0;
private static final int DEFAULT_OVERSIZE = 120;
- public LegacyManagementController(final ManagementController nextVersionManagementController)
+ public LegacyManagementController(final ManagementController nextVersionManagementController,
+ final String modelVersion)
{
- super(LegacyManagementControllerFactory.MODEL_VERSION, nextVersionManagementController);
+ super(modelVersion, nextVersionManagementController);
}
@Override
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory.java
index 1b26e92..30d022d 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory.java
@@ -55,7 +55,7 @@
final ManagementController nextVersionManagementController)
{
- LegacyManagementController controller = new LegacyManagementController(nextVersionManagementController);
+ LegacyManagementController controller = new LegacyManagementController(nextVersionManagementController, MODEL_VERSION);
controller.initialize();
return controller;
}
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory_v7_1.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory_v7_1.java
new file mode 100644
index 0000000..0bd8242
--- /dev/null
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerFactory_v7_1.java
@@ -0,0 +1,61 @@
+/*
+ *
+ * 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.management.plugin.controller.v7_0;
+
+import org.apache.qpid.server.management.plugin.HttpManagementConfiguration;
+import org.apache.qpid.server.management.plugin.ManagementController;
+import org.apache.qpid.server.management.plugin.ManagementControllerFactory;
+import org.apache.qpid.server.management.plugin.controller.v7_0.LegacyManagementController;
+import org.apache.qpid.server.plugin.PluggableService;
+
+@PluggableService
+public class LegacyManagementControllerFactory_v7_1 implements ManagementControllerFactory
+{
+ public static final String MODEL_VERSION = "7.1";
+
+ @Override
+ public String getType()
+ {
+ return "org.apache.qpid.server.management.plugin.model.v7_1";
+ }
+
+ @Override
+ public String getVersion()
+ {
+ return MODEL_VERSION;
+ }
+
+ @Override
+ public String getPreviousVersion()
+ {
+ return "7.0";
+ }
+
+ @Override
+ public ManagementController createManagementController(final HttpManagementConfiguration<?> httpManagement,
+ final ManagementController nextVersionManagementController)
+ {
+
+ LegacyManagementController controller = new LegacyManagementController(nextVersionManagementController, MODEL_VERSION);
+ controller.initialize();
+ return controller;
+ }
+}
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryController.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryController.java
index 82ace6d..7aad335 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryController.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryController.java
@@ -40,7 +40,7 @@
final Set<TypeController> typeControllers)
{
super(managementController,
- new LatestManagementControllerAdapter(managementController.getNextVersionManagementController()),
+ managementController.getNextVersionManagementController(),
name,
defaultType,
typeControllers);
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryControllerFactory_v7_1.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryControllerFactory_v7_1.java
new file mode 100644
index 0000000..40e02cd
--- /dev/null
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/controller/v7_0/category/LegacyCategoryControllerFactory_v7_1.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.management.plugin.controller.v7_0.category;
+
+import org.apache.qpid.server.management.plugin.controller.v7_0.LegacyManagementControllerFactory_v7_1;
+import org.apache.qpid.server.plugin.PluggableService;
+
+@PluggableService
+public class LegacyCategoryControllerFactory_v7_1 extends LegacyCategoryControllerFactory
+{
+ @Override
+ public String getModelVersion()
+ {
+ return LegacyManagementControllerFactory_v7_1.MODEL_VERSION;
+ }
+}
diff --git a/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerTest.java b/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerTest.java
index 6b0e836..892c9b6 100644
--- a/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerTest.java
+++ b/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/controller/v7_0/LegacyManagementControllerTest.java
@@ -48,7 +48,8 @@
public void setUp()
{
final ManagementController nextVersionManagementController = mock(ManagementController.class);
- _controller = new LegacyManagementController(nextVersionManagementController);
+ _controller = new LegacyManagementController(nextVersionManagementController,
+ LegacyManagementControllerFactory.MODEL_VERSION);
_controller.initialize();
}
diff --git a/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json b/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
index 9d512f0..3188fda 100644
--- a/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
+++ b/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "anon",
"type" : "Anonymous"
diff --git a/systests/protocol-tests-amqp-0-10/src/main/resources/config-protocol-tests-0-10.json b/systests/protocol-tests-amqp-0-10/src/main/resources/config-protocol-tests-0-10.json
index 813d127..a4fd9f3 100644
--- a/systests/protocol-tests-amqp-0-10/src/main/resources/config-protocol-tests-0-10.json
+++ b/systests/protocol-tests-amqp-0-10/src/main/resources/config-protocol-tests-0-10.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "anon",
"type" : "Anonymous"
diff --git a/systests/protocol-tests-amqp-0-8/src/main/resources/config-protocol-tests-0-8.json b/systests/protocol-tests-amqp-0-8/src/main/resources/config-protocol-tests-0-8.json
index d34fb4e..c74f09d 100644
--- a/systests/protocol-tests-amqp-0-8/src/main/resources/config-protocol-tests-0-8.json
+++ b/systests/protocol-tests-amqp-0-8/src/main/resources/config-protocol-tests-0-8.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "anon",
"type" : "Anonymous"
diff --git a/systests/protocol-tests-amqp-1-0/src/main/resources/config-protocol-tests.json b/systests/protocol-tests-amqp-1-0/src/main/resources/config-protocol-tests.json
index 9793fe9..7ccded1 100644
--- a/systests/protocol-tests-amqp-1-0/src/main/resources/config-protocol-tests.json
+++ b/systests/protocol-tests-amqp-1-0/src/main/resources/config-protocol-tests.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "anon",
"type" : "Anonymous"
diff --git a/systests/qpid-systests-http-management/src/main/resources/config-http-management-tests.json b/systests/qpid-systests-http-management/src/main/resources/config-http-management-tests.json
index 946e545..0825206 100644
--- a/systests/qpid-systests-http-management/src/main/resources/config-http-management-tests.json
+++ b/systests/qpid-systests-http-management/src/main/resources/config-http-management-tests.json
@@ -20,7 +20,7 @@
*/
{
"name": "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"keystores": [
{
"name": "systestsKeyStore",
diff --git a/systests/qpid-systests-jms-core/src/main/resources/config-jms-tests.json b/systests/qpid-systests-jms-core/src/main/resources/config-jms-tests.json
index fe06e08..af190a0 100644
--- a/systests/qpid-systests-jms-core/src/main/resources/config-jms-tests.json
+++ b/systests/qpid-systests-jms-core/src/main/resources/config-jms-tests.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "anon",
"type" : "Anonymous"
diff --git a/systests/qpid-systests-spawn-admin/src/main/resources/spawn-broker.json b/systests/qpid-systests-spawn-admin/src/main/resources/spawn-broker.json
index 42af64c..7e7eaae 100644
--- a/systests/qpid-systests-spawn-admin/src/main/resources/spawn-broker.json
+++ b/systests/qpid-systests-spawn-admin/src/main/resources/spawn-broker.json
@@ -20,7 +20,7 @@
*/
{
"name" : "${broker.name}",
- "modelVersion" : "7.1",
+ "modelVersion" : "8.0",
"authenticationproviders" : [ {
"name" : "plain",
"type" : "Plain",