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) {

Reply via email to