QPID-8260: [Broker-J] Ass support for provided preferences store into Derby and JDBC system configs
diff --git a/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfig.java b/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfig.java
index c79b08c..410e071 100644
--- a/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfig.java
+++ b/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfig.java
@@ -25,9 +25,12 @@
 import org.apache.qpid.server.store.FileBasedSettings;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
 import org.apache.qpid.server.store.preferences.PreferenceStoreAttributes;
+import org.apache.qpid.server.store.preferences.PreferenceStoreProvider;
 
-public interface DerbySystemConfig<X extends DerbySystemConfig<X>> extends SystemConfig<X>, FileBasedSettings,
-                                                                           SizeMonitoringSettings
+public interface DerbySystemConfig<X extends DerbySystemConfig<X>> extends SystemConfig<X>,
+                                                                           FileBasedSettings,
+                                                                           SizeMonitoringSettings,
+                                                                           PreferenceStoreProvider
 {
     @Override
     @ManagedAttribute(defaultValue = "${qpid.work_dir}${file.separator}config.json")
diff --git a/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java b/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
index fe4e560..d26d1ab 100644
--- a/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
+++ b/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
@@ -31,6 +31,7 @@
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.SystemConfigFactoryConstructor;
 import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.preferences.PreferenceStore;
 
 @ManagedObject(category = false, type = DerbySystemConfigImpl.SYSTEM_CONFIG_TYPE)
 public class DerbySystemConfigImpl extends AbstractSystemConfig<DerbySystemConfigImpl> implements DerbySystemConfig<DerbySystemConfigImpl>
@@ -76,4 +77,10 @@
     {
         return _storeOverfullSize;
     }
+
+    @Override
+    public PreferenceStore getPreferenceStore()
+    {
+        return ((DerbyConfigurationStore) getConfigurationStore()).getPreferenceStore();
+    }
 }
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfig.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfig.java
index 67c83cd..6a6d5f3 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfig.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfig.java
@@ -24,8 +24,11 @@
 import org.apache.qpid.server.model.ManagedContextDefault;
 import org.apache.qpid.server.model.SystemConfig;
 import org.apache.qpid.server.store.preferences.PreferenceStoreAttributes;
+import org.apache.qpid.server.store.preferences.PreferenceStoreProvider;
 
-public interface JDBCSystemConfig<X extends JDBCSystemConfig<X>> extends SystemConfig<X>, JDBCSettings
+public interface JDBCSystemConfig<X extends JDBCSystemConfig<X>> extends SystemConfig<X>,
+                                                                         JDBCSettings,
+                                                                         PreferenceStoreProvider
 {
     @Override
     @ManagedAttribute(mandatory=true, defaultValue = "${systemConfig.connectionUrl}")
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
index 6a4ef55..2a21b96 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
@@ -31,6 +31,7 @@
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.SystemConfigFactoryConstructor;
 import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.preferences.PreferenceStore;
 
 @ManagedObject( category = false, type = JDBCSystemConfigImpl.SYSTEM_CONFIG_TYPE)
 public class JDBCSystemConfigImpl extends AbstractSystemConfig<JDBCSystemConfigImpl> implements JDBCSystemConfig<JDBCSystemConfigImpl>
@@ -92,4 +93,10 @@
     {
         return _tableNamePrefix;
     }
+
+    @Override
+    public PreferenceStore getPreferenceStore()
+    {
+        return ((GenericJDBCConfigurationStore) getConfigurationStore()).getPreferenceStore();
+    }
 }