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

smolnar 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 6ca3a4e  KNOX-2284 - Handling CM descriptors after Knox 
shared-provider/descriptor/topology monitors are started (#285)
6ca3a4e is described below

commit 6ca3a4eab9ccb83f17dd8efebf7b8c499aa244f2
Author: Sandor Molnar <[email protected]>
AuthorDate: Tue Mar 10 19:15:49 2020 +0100

    KNOX-2284 - Handling CM descriptors after Knox 
shared-provider/descriptor/topology monitors are started (#285)
---
 .../gateway/ClouderaManagerIntegrationMessages.java  |  3 +++
 .../descriptor/ClouderaManagerDescriptorMonitor.java |  1 +
 .../java/org/apache/knox/gateway/GatewayServer.java  | 20 ++++++++++++--------
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git 
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
 
b/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
index 634f5d0..747d48b 100644
--- 
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
+++ 
b/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
@@ -33,6 +33,9 @@ public interface ClouderaManagerIntegrationMessages {
   @Message(level = MessageLevel.INFO, text = "Found Knox descriptors {0} in 
{1}")
   void parsedClouderaManagerDescriptor(String descriptorList, String path);
 
+  @Message(level = MessageLevel.INFO, text = "Saved Knox descriptor {0}")
+  void savedSimpleDescriptorDescriptor(String path);
+
   @Message(level = MessageLevel.INFO, text = "Ignoring {0} Knox descriptor 
update because it did not change.")
   void descriptorDidNotChange(String descriptorName);
 
diff --git 
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
 
b/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
index e4739cb..fc498a7 100644
--- 
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
+++ 
b/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
@@ -97,6 +97,7 @@ public class ClouderaManagerDescriptorMonitor implements 
AdvancedServiceDiscover
         final String simpleDescriptorJsonString = 
JsonUtils.renderAsJsonString(simpleDescriptor);
         if (isDescriptorChangedOrNew(knoxDescriptorFile, 
simpleDescriptorJsonString)) {
           FileUtils.writeStringToFile(knoxDescriptorFile, 
JsonUtils.renderAsJsonString(simpleDescriptor), StandardCharsets.UTF_8);
+          
LOG.savedSimpleDescriptorDescriptor(knoxDescriptorFile.getAbsolutePath());
         } else {
           LOG.descriptorDidNotChange(simpleDescriptor.getName());
         }
diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java 
b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index 58a0e41..c7ed675 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -624,14 +624,6 @@ public class GatewayServer {
         "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
         "org.eclipse.jetty.annotations.AnnotationConfiguration" );
 
-    final ClouderaManagerDescriptorParser cmDescriptorParser = new 
ClouderaManagerDescriptorParser();
-    final ClouderaManagerDescriptorMonitor cmDescriptorMonitor = new 
ClouderaManagerDescriptorMonitor(config, cmDescriptorParser);
-    final AdvancedServiceDiscoveryConfigurationMonitor 
advancedServiceDiscoveryConfigurationMonitor = new 
AdvancedServiceDiscoveryConfigurationMonitor(config);
-    
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorParser);
-    
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorMonitor);
-    advancedServiceDiscoveryConfigurationMonitor.init();
-    cmDescriptorMonitor.setupMonitor();
-
     // Load the current topologies.
     // Redeploy autodeploy topologies.
     File topologiesDir = calculateAbsoluteTopologiesDir();
@@ -708,6 +700,8 @@ public class GatewayServer {
     log.monitoringTopologyChangesInDirectory(topologiesDir.getAbsolutePath());
     monitor.startMonitor();
 
+    handleClouderaManagerDescriptors();
+
     Runtime.getRuntime().addShutdownHook(new Thread() {
 
       @Override
@@ -721,6 +715,16 @@ public class GatewayServer {
     });
   }
 
+  private void handleClouderaManagerDescriptors() {
+    final ClouderaManagerDescriptorParser cmDescriptorParser = new 
ClouderaManagerDescriptorParser();
+    final ClouderaManagerDescriptorMonitor cmDescriptorMonitor = new 
ClouderaManagerDescriptorMonitor(config, cmDescriptorParser);
+    final AdvancedServiceDiscoveryConfigurationMonitor 
advancedServiceDiscoveryConfigurationMonitor = new 
AdvancedServiceDiscoveryConfigurationMonitor(config);
+    
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorParser);
+    
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorMonitor);
+    advancedServiceDiscoveryConfigurationMonitor.init();
+    cmDescriptorMonitor.setupMonitor();
+  }
+
   public synchronized void stop() throws Exception {
     if (!stopped.get()) {
       try {

Reply via email to