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 {