diff --git a/core/src/main/java/org/infinispan/configuration/serializing/Serializer.java b/core/src/main/java/org/infinispan/configuration/serializing/Serializer.java index 042c0f798579..cce08390f2f9 100644 --- a/core/src/main/java/org/infinispan/configuration/serializing/Serializer.java +++ b/core/src/main/java/org/infinispan/configuration/serializing/Serializer.java @@ -186,6 +186,7 @@ private void writeCacheContainer(XMLExtendedStreamWriter writer, ConfigurationHo writeSerialization(writer, globalConfiguration); writeJMX(writer, globalConfiguration); writeGlobalState(writer, globalConfiguration); + writeExtraConfiguration(writer, globalConfiguration.modules()); for (Entry configuration : holder.getConfigurations().entrySet()) { Configuration config = configuration.getValue(); switch (config.clustering().cacheMode()) { @@ -207,9 +208,27 @@ private void writeCacheContainer(XMLExtendedStreamWriter writer, ConfigurationHo default: break; } + writeExtraConfiguration(writer, config.modules()); } } + private void writeExtraConfiguration(XMLExtendedStreamWriter writer, Map, ?> modules) + throws XMLStreamException { + for (Entry, ?> entry : modules.entrySet()) { + SerializedWith serializedWith = entry.getKey().getAnnotation(SerializedWith.class); + if (serializedWith == null) { + continue; + } + try { + ConfigurationSerializer serializer = Util.getInstanceStrict(serializedWith.value()); + serializer.serialize(writer, entry.getValue()); + } catch (InstantiationException | IllegalAccessException e) { + log.unableToInstantiateSerializer(serializedWith.value()); + } + } + + } + private void writeGlobalState(XMLExtendedStreamWriter writer, GlobalConfiguration globalConfiguration) throws XMLStreamException { GlobalStateConfiguration configuration = globalConfiguration.globalState(); diff --git a/core/src/main/java/org/infinispan/util/logging/Log.java b/core/src/main/java/org/infinispan/util/logging/Log.java index 121778581e4c..b9891163f67c 100644 --- a/core/src/main/java/org/infinispan/util/logging/Log.java +++ b/core/src/main/java/org/infinispan/util/logging/Log.java @@ -1422,7 +1422,7 @@ TimeoutException timeoutWaitingForView(int expectedViewId, int currentViewId, @Message(value = "Cannot determine a synthetic transaction configuration from mode=%s, xaEnabled=%s, recoveryEnabled=%s, batchingEnabled=%s", id = 412) CacheConfigurationException unknownTransactionConfiguration(org.infinispan.transaction.TransactionMode mode, boolean xaEnabled, boolean recoveryEnabled, boolean batchingEnabled); - @Message(value = "Unable to instantiate serializer for StoreConfiguration %s", id = 413) + @Message(value = "Unable to instantiate serializer for %s", id = 413) CacheConfigurationException unableToInstantiateSerializer(Class storeConfigurationClass); @Message(value = "Global security authorization should be enabled if cache authorization enabled.", id = 414)