This is an automated email from the ASF dual-hosted git repository.

amagyar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 49983cb3b KNOX-2871 - Refine should perform discovery check (#721)
49983cb3b is described below

commit 49983cb3b49655488487e13da40191a73ff6589a
Author: Attila Magyar <[email protected]>
AuthorDate: Fri Feb 3 12:40:21 2023 +0100

    KNOX-2871 - Refine should perform discovery check (#721)
---
 .../apache/knox/gateway/SimpleDescriptorHandlerFuncTest.java   | 10 +++++++---
 .../knox/gateway/topology/simple/SimpleDescriptorHandler.java  |  4 ++--
 .../knox/gateway/topology/simple/SimpleDescriptorMessages.java |  2 +-
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/gateway-test/src/test/java/org/apache/knox/gateway/SimpleDescriptorHandlerFuncTest.java
 
b/gateway-test/src/test/java/org/apache/knox/gateway/SimpleDescriptorHandlerFuncTest.java
index b414b19cb..33185e33d 100644
--- 
a/gateway-test/src/test/java/org/apache/knox/gateway/SimpleDescriptorHandlerFuncTest.java
+++ 
b/gateway-test/src/test/java/org/apache/knox/gateway/SimpleDescriptorHandlerFuncTest.java
@@ -108,6 +108,7 @@ public class SimpleDescriptorHandlerFuncTest {
           "            
<param><name>localhost</name><value>sandbox,sandbox.hortonworks.com</value></param>\n"
 +
           "        </provider>\n" +
           "    </gateway>\n";
+  public static final String DISCOVERY_ADDRESS = "http://dummy_address";;
 
 
   /*
@@ -147,7 +148,7 @@ public class SimpleDescriptorHandlerFuncTest {
       // Mock out the simple descriptor
       SimpleDescriptor testDescriptor = 
EasyMock.createNiceMock(SimpleDescriptor.class);
       
EasyMock.expect(testDescriptor.getName()).andReturn("mysimpledescriptor").anyTimes();
-      
EasyMock.expect(testDescriptor.getDiscoveryAddress()).andReturn(null).anyTimes();
+      
EasyMock.expect(testDescriptor.getDiscoveryAddress()).andReturn(DISCOVERY_ADDRESS).anyTimes();
       
EasyMock.expect(testDescriptor.getDiscoveryType()).andReturn(discoveryType).anyTimes();
       
EasyMock.expect(testDescriptor.getDiscoveryUser()).andReturn(null).anyTimes();
       
EasyMock.expect(testDescriptor.getProviderConfig()).andReturn(providerConfig.getAbsolutePath()).anyTimes();
@@ -245,6 +246,7 @@ public class SimpleDescriptorHandlerFuncTest {
       assertEquals("Unexpected alias value (should be master secret + topology 
name.",
                    testMasterSecret + testDescriptor.getName(), 
capturedPwd.getValue());
 
+      assertEquals(1, NoOpServiceDiscovery.discoveryCalled);
     } catch (Exception e) {
       e.printStackTrace();
       fail(e.getMessage());
@@ -274,6 +276,7 @@ public class SimpleDescriptorHandlerFuncTest {
 
   private static final class NoOpServiceDiscovery implements ServiceDiscovery {
     static final String TYPE = "NO_OP";
+    static int discoveryCalled;
 
     @Override
     public String getType() {
@@ -290,12 +293,12 @@ public class SimpleDescriptorHandlerFuncTest {
 
         @Override
         public List<String> getServiceURLs(String serviceName) {
-          return null;
+          return Collections.emptyList();
         }
 
         @Override
         public List<String> getServiceURLs(String serviceName, Map<String, 
String> serviceParams) {
-          return null;
+          return Collections.emptyList();
         }
 
         @Override
@@ -307,6 +310,7 @@ public class SimpleDescriptorHandlerFuncTest {
 
     @Override
     public Cluster discover(GatewayConfig gwConfig, ServiceDiscoveryConfig 
config, String clusterName, Collection<String> includedServices) {
+      discoveryCalled++;
       return discover(gwConfig, config, clusterName);
     }
   }
diff --git 
a/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
 
b/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
index 7ef0c6adc..cb343fbce 100644
--- 
a/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
+++ 
b/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
@@ -16,6 +16,7 @@
  */
 package org.apache.knox.gateway.topology.simple;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.knox.gateway.config.GatewayConfig;
 import org.apache.knox.gateway.i18n.messages.MessagesFactory;
@@ -210,8 +211,7 @@ public class SimpleDescriptorHandler {
      */
     private static boolean shouldPerformDiscovery(final SimpleDescriptor desc) 
{
         // If there is a discovery type specified, then discovery should be 
performed
-        final String discoveryType = desc.getDiscoveryType();
-        if (discoveryType != null && !discoveryType.isEmpty()) {
+        if (StringUtils.isNotBlank(desc.getDiscoveryType()) && 
StringUtils.isNotBlank(desc.getDiscoveryAddress())) {
             return true;
         }
         log.missingDiscoveryTypeInDescriptor(desc.getName());
diff --git 
a/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorMessages.java
 
b/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorMessages.java
index c3d2e927f..881c5d5bd 100644
--- 
a/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorMessages.java
+++ 
b/gateway-topology-simple/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorMessages.java
@@ -29,7 +29,7 @@ public interface SimpleDescriptorMessages {
     void discoveryNotConfiguredForDescriptor(String descriptorName);
 
     @Message(level = MessageLevel.INFO,
-            text = "The \"{0}\" descriptor does not include discovery-type.")
+            text = "The \"{0}\" descriptor does not include discovery-type or 
discovery-address.")
     void missingDiscoveryTypeInDescriptor(String descriptorName);
 
     @Message(level = MessageLevel.WARN,

Reply via email to