This is an automated email from the ASF dual-hosted git repository. udo pushed a commit to branch feature/GEODE-8294 in repository https://gitbox.apache.org/repos/asf/geode.git
commit f1998cd418cf12c8d6835480f483602185456b5a Author: Patrick Johnson <pjohn...@pivotal.io> AuthorDate: Wed Jul 1 12:16:45 2020 -0700 GEODE-8294 - Integrate ModuleService into CacheXml. --- .../geode/internal/cache/xmlcache/CacheXml.java | 2 +- .../internal/cache/xmlcache/CacheXmlParser.java | 28 +++++++++++++--------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java index 5ea0931..f248d14 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java @@ -773,7 +773,7 @@ public abstract class CacheXml implements GeodeEntityResolver2, ErrorHandler { /** the version of the DTD being used by the document being parsed */ CacheXmlVersion version; - private ModuleService moduleService; + protected ModuleService moduleService; ///////////////////// Instance Methods ///////////////////// diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java index eba13b9..0892060 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java @@ -27,7 +27,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; -import java.util.ServiceLoader; import java.util.Set; import java.util.Stack; import java.util.StringTokenizer; @@ -106,7 +105,6 @@ import org.apache.geode.cache.wan.GatewaySenderFactory; import org.apache.geode.cache.wan.GatewayTransportFilter; import org.apache.geode.compression.Compressor; import org.apache.geode.internal.Assert; -import org.apache.geode.internal.ClassPathLoader; import org.apache.geode.internal.InternalDataSerializer; import org.apache.geode.internal.cache.DiskStoreAttributes; import org.apache.geode.internal.cache.DiskWriteAttributesImpl; @@ -122,6 +120,7 @@ import org.apache.geode.internal.logging.log4j.LogMarker; import org.apache.geode.logging.internal.log4j.api.LogService; import org.apache.geode.pdx.PdxSerializer; import org.apache.geode.services.module.ModuleService; +import org.apache.geode.services.result.ModuleServiceResult; /** * Parses an XML file and creates a {@link Cache}/{@link ClientCache} and {@link Region}s from it. @@ -2821,15 +2820,17 @@ public class CacheXmlParser extends CacheXml implements ContentHandler { XmlParser delegate = delegates.get(namespaceUri); if (null == delegate) { try { - final ServiceLoader<XmlParser> serviceLoader = - ServiceLoader.load(XmlParser.class, ClassPathLoader.getLatestAsClassLoader()); - for (final XmlParser xmlParser : serviceLoader) { - if (xmlParser.getNamespaceUri().equals(namespaceUri)) { - delegate = xmlParser; - delegate.setStack(stack); - delegate.setDocumentLocator(documentLocator); - delegates.put(xmlParser.getNamespaceUri(), xmlParser); - break; + ModuleServiceResult<Set<XmlParser>> serviceLoadResult = + moduleService.loadService(XmlParser.class); + if (serviceLoadResult.isSuccessful()) { + for (final XmlParser xmlParser : serviceLoadResult.getMessage()) { + if (xmlParser.getNamespaceUri().equals(namespaceUri)) { + delegate = xmlParser; + delegate.setStack(stack); + delegate.setDocumentLocator(documentLocator); + delegates.put(xmlParser.getNamespaceUri(), xmlParser); + break; + } } } } catch (final Exception e) { @@ -2839,6 +2840,11 @@ public class CacheXmlParser extends CacheXml implements ContentHandler { return delegate; } + @Override + public void init(ModuleService moduleService) { + super.init(moduleService); + } + private void startPdx(Attributes atts) { String readSerialized = atts.getValue(READ_SERIALIZED); if (readSerialized != null) {