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 863e7ab KNOX-2344 - Rename gateway-cm-integration module and related
resources (#353)
863e7ab is described below
commit 863e7ab1e30f99036c905ca16fdd9aa31d095e56
Author: Sandor Molnar <[email protected]>
AuthorDate: Wed Jun 24 09:59:31 2020 +0200
KNOX-2344 - Rename gateway-cm-integration module and related resources
(#353)
---
gateway-release/pom.xml | 2 +-
gateway-server/pom.xml | 2 +-
.../org/apache/knox/gateway/GatewayServer.java | 18 +++++-----
.../pom.xml | 6 ++--
...vanceServiceDiscoveryConfigurationMessages.java | 0
.../advanced/AdvancedServiceDiscoveryConfig.java | 0
...vancedServiceDiscoveryConfigChangeListener.java | 0
...vancedServiceDiscoveryConfigurationMonitor.java | 0
.../hadoop/xml/HadoopXmlResourceMessages.java | 25 ++++++++------
.../hadoop/xml/HadoopXmlResourceMonitor.java | 33 +++++++++---------
.../hadoop/xml/HadoopXmlResourceParser.java | 40 ++++++++++++++--------
.../hadoop/xml/HadoopXmlResourceParserResult.java | 8 ++---
.../hadoop/xml/HadoopXmlResourceParserTest.java | 38 ++++++++++----------
.../src/test/resources/testDescriptor.xml | 0
...onfigurationWithNonHadoopStyleConfiguration.xml | 0
...tDescriptorConfigurationWithWrongDescriptor.xml | 0
...ithAdminProviderConfigRemovedUserDnTemplate.xml | 0
...riptorWithAdminProviderConfigUpdatedLdapUrl.xml | 0
.../testDescriptorWithoutDiscoveryDetails.xml | 0
pom.xml | 4 +--
20 files changed, 95 insertions(+), 81 deletions(-)
diff --git a/gateway-release/pom.xml b/gateway-release/pom.xml
index d85656b..32f1203 100644
--- a/gateway-release/pom.xml
+++ b/gateway-release/pom.xml
@@ -439,7 +439,7 @@
</dependency>
<dependency>
<groupId>org.apache.knox</groupId>
- <artifactId>gateway-cm-integration</artifactId>
+ <artifactId>gateway-topology-hadoop-xml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.knox</groupId>
diff --git a/gateway-server/pom.xml b/gateway-server/pom.xml
index 3401f4e..5afed31 100644
--- a/gateway-server/pom.xml
+++ b/gateway-server/pom.xml
@@ -67,7 +67,7 @@
</dependency>
<dependency>
<groupId>org.apache.knox</groupId>
- <artifactId>gateway-cm-integration</artifactId>
+ <artifactId>gateway-topology-hadoop-xml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.knox</groupId>
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 3b36ee8..f92e2d7 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
@@ -27,8 +27,6 @@ import org.apache.knox.gateway.audit.api.AuditServiceFactory;
import org.apache.knox.gateway.audit.api.Auditor;
import org.apache.knox.gateway.audit.api.ResourceType;
import org.apache.knox.gateway.audit.log4j.audit.AuditConstants;
-import org.apache.knox.gateway.cm.descriptor.ClouderaManagerDescriptorMonitor;
-import org.apache.knox.gateway.cm.descriptor.ClouderaManagerDescriptorParser;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.config.GatewayConfigurationException;
import org.apache.knox.gateway.config.impl.GatewayConfigImpl;
@@ -50,6 +48,8 @@ import org.apache.knox.gateway.topology.Topology;
import org.apache.knox.gateway.topology.TopologyEvent;
import org.apache.knox.gateway.topology.TopologyListener;
import
org.apache.knox.gateway.topology.discovery.advanced.AdvancedServiceDiscoveryConfigurationMonitor;
+import org.apache.knox.gateway.topology.hadoop.xml.HadoopXmlResourceMonitor;
+import org.apache.knox.gateway.topology.hadoop.xml.HadoopXmlResourceParser;
import org.apache.knox.gateway.trace.AccessHandler;
import org.apache.knox.gateway.trace.KnoxErrorHandler;
import org.apache.knox.gateway.trace.TraceHandler;
@@ -699,7 +699,7 @@ public class GatewayServer {
// Start the topology monitor.
monitor.startMonitor();
- handleClouderaManagerDescriptors();
+ handleHadoopXmlResources();
Runtime.getRuntime().addShutdownHook(new Thread() {
@@ -714,14 +714,14 @@ public class GatewayServer {
});
}
- private void handleClouderaManagerDescriptors() {
- final ClouderaManagerDescriptorParser cmDescriptorParser = new
ClouderaManagerDescriptorParser(config);
- final ClouderaManagerDescriptorMonitor cmDescriptorMonitor = new
ClouderaManagerDescriptorMonitor(config, cmDescriptorParser);
+ private void handleHadoopXmlResources() {
+ final HadoopXmlResourceParser hadoopXmlResourceParser = new
HadoopXmlResourceParser(config);
+ final HadoopXmlResourceMonitor hadoopXmlResourceMonitor = new
HadoopXmlResourceMonitor(config, hadoopXmlResourceParser);
final AdvancedServiceDiscoveryConfigurationMonitor
advancedServiceDiscoveryConfigurationMonitor = new
AdvancedServiceDiscoveryConfigurationMonitor(config);
-
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorParser);
-
advancedServiceDiscoveryConfigurationMonitor.registerListener(cmDescriptorMonitor);
+
advancedServiceDiscoveryConfigurationMonitor.registerListener(hadoopXmlResourceParser);
+
advancedServiceDiscoveryConfigurationMonitor.registerListener(hadoopXmlResourceMonitor);
advancedServiceDiscoveryConfigurationMonitor.init();
- cmDescriptorMonitor.setupMonitor();
+ hadoopXmlResourceMonitor.setupMonitor();
}
public synchronized void stop() throws Exception {
diff --git a/gateway-cm-integration/pom.xml
b/gateway-topology-hadoop-xml/pom.xml
similarity index 93%
rename from gateway-cm-integration/pom.xml
rename to gateway-topology-hadoop-xml/pom.xml
index 98dfe68..5ca2cd5 100644
--- a/gateway-cm-integration/pom.xml
+++ b/gateway-topology-hadoop-xml/pom.xml
@@ -25,9 +25,9 @@
<version>1.5.0-SNAPSHOT</version>
</parent>
- <artifactId>gateway-cm-integration</artifactId>
- <name>gateway-cm-integration</name>
- <description>Cloudera Manager integration related resources</description>
+ <artifactId>gateway-topology-hadoop-xml</artifactId>
+ <name>gateway-topology-hadoop-xml</name>
+ <description>Topology generation using Hadoop style XML
resources</description>
<dependencies>
<dependency>
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvanceServiceDiscoveryConfigurationMessages.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvanceServiceDiscoveryConfigurationMessages.java
similarity index 100%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvanceServiceDiscoveryConfigurationMessages.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvanceServiceDiscoveryConfigurationMessages.java
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfig.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfig.java
similarity index 100%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfig.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfig.java
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigChangeListener.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigChangeListener.java
similarity index 100%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigChangeListener.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigChangeListener.java
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigurationMonitor.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigurationMonitor.java
similarity index 100%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigurationMonitor.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/discovery/advanced/AdvancedServiceDiscoveryConfigurationMonitor.java
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMessages.java
similarity index 72%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMessages.java
index b5290bd..64b1210 100644
---
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/ClouderaManagerIntegrationMessages.java
+++
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMessages.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.knox.gateway;
+package org.apache.knox.gateway.topology.hadoop.xml;
import org.apache.knox.gateway.i18n.messages.Message;
import org.apache.knox.gateway.i18n.messages.MessageLevel;
@@ -22,19 +22,22 @@ import org.apache.knox.gateway.i18n.messages.Messages;
import org.apache.knox.gateway.i18n.messages.StackTrace;
@Messages(logger = "org.apache.knox.gateway")
-public interface ClouderaManagerIntegrationMessages {
+public interface HadoopXmlResourceMessages {
- @Message(level = MessageLevel.INFO, text = "Monitoring Cloudera Manager
descriptors in {0} ...")
- void monitoringClouderaManagerDescriptor(String path);
+ @Message(level = MessageLevel.INFO, text = "Monitoring Knox resources in
Hadoop style XML configurations in {0} ...")
+ void monitoringHadoopXmlResources(String path);
- @Message(level = MessageLevel.INFO, text = "Monitoring Cloudera Manager
descriptors is disabled.")
- void disableMonitoringClouderaManagerDescriptor();
+ @Message(level = MessageLevel.INFO, text = "Monitoring Knox resources in
Hadoop style XML configurations is disabled.")
+ void disableMonitoringHadoopXmlResources();
- @Message(level = MessageLevel.INFO, text = "Parsing Cloudera Manager
descriptor {0}. Looking up {1}...")
- void parseClouderaManagerDescriptor(String path, String topologyName);
+ @Message(level = MessageLevel.INFO, text = "Parsing Knox resources in
Hadoop style XML {0}. Looking up {1}...")
+ void parseHadoopXmlResource(String path, String topologyName);
@Message(level = MessageLevel.INFO, text = "Found Knox descriptors {0} in
{1}")
- void parsedClouderaManagerDescriptor(String descriptorList, String path);
+ void foundKnoxDescriptors(String descriptorList, String path);
+
+ @Message(level = MessageLevel.INFO, text = "Found Knox provider
configurations {0} in {1}")
+ void foundKnoxProviderConfigurations(String providerConfigurationList,
String path);
@Message(level = MessageLevel.INFO, text = "Saved Knox {0} into {1}")
void savedResource(String resourceType, String path);
@@ -51,8 +54,8 @@ public interface ClouderaManagerIntegrationMessages {
@Message(level = MessageLevel.ERROR, text = "Parsing XML configuration {0}
failed: {1}")
void failedToParseXmlConfiguration(String path, String errorMessage,
@StackTrace(level = MessageLevel.DEBUG) Exception e);
- @Message(level = MessageLevel.ERROR, text = "Error while monitoring CM
descriptor {0}: {1}")
- void failedToMonitorClouderaManagerDescriptor(String descriptorPath, String
errorMessage, @StackTrace(level = MessageLevel.DEBUG) Exception e);
+ @Message(level = MessageLevel.ERROR, text = "Error while monitoring Hadoop
style XML configuration {0}: {1}")
+ void failedToMonitorHadoopXmlResource(String descriptorPath, String
errorMessage, @StackTrace(level = MessageLevel.DEBUG) Exception e);
@Message(level = MessageLevel.ERROR, text = "Error while producing Knox
descriptor: {0}")
void failedToProduceKnoxDescriptor(String errorMessage, @StackTrace(level =
MessageLevel.DEBUG) Exception e);
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMonitor.java
similarity index 79%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMonitor.java
index ab6369b..613d2bf 100644
---
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorMonitor.java
+++
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceMonitor.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.knox.gateway.cm.descriptor;
+package org.apache.knox.gateway.topology.hadoop.xml;
import java.io.File;
import java.io.FileFilter;
@@ -33,7 +33,6 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
-import org.apache.knox.gateway.ClouderaManagerIntegrationMessages;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
import
org.apache.knox.gateway.topology.discovery.advanced.AdvancedServiceDiscoveryConfig;
@@ -41,21 +40,21 @@ import
org.apache.knox.gateway.topology.discovery.advanced.AdvancedServiceDiscov
import org.apache.knox.gateway.util.JsonUtils;
/**
- * Monitoring KNOX_DESCRIPTOR_DIR for *.cm files - which is a Hadoop XML
configuration - and processing those files if they were modified
+ * Monitoring KNOX_DESCRIPTOR_DIR for *.hxr files - which is a Hadoop XML
configuration - and processing those files if they were modified
* since the last time it they were processed
*/
-public class ClouderaManagerDescriptorMonitor implements
AdvancedServiceDiscoveryConfigChangeListener {
+public class HadoopXmlResourceMonitor implements
AdvancedServiceDiscoveryConfigChangeListener {
- private static final String CM_DESCRIPTOR_FILE_EXTENSION = ".cm";
- private static final ClouderaManagerIntegrationMessages LOG =
MessagesFactory.get(ClouderaManagerIntegrationMessages.class);
+ private static final String HADOOP_XML_RESOURCE_FILE_EXTENSION = ".hxr";
+ private static final HadoopXmlResourceMessages LOG =
MessagesFactory.get(HadoopXmlResourceMessages.class);
private final String sharedProvidersDir;
private final String descriptorsDir;
private final long monitoringInterval;
- private final ClouderaManagerDescriptorParser cmDescriptorParser;
+ private final HadoopXmlResourceParser hadoopXmlResourceParser;
private FileTime lastReloadTime;
- public ClouderaManagerDescriptorMonitor(GatewayConfig gatewayConfig,
ClouderaManagerDescriptorParser cmDescriptorParser) {
- this.cmDescriptorParser = cmDescriptorParser;
+ public HadoopXmlResourceMonitor(GatewayConfig gatewayConfig,
HadoopXmlResourceParser hadoopXmlResourceParser) {
+ this.hadoopXmlResourceParser = hadoopXmlResourceParser;
this.sharedProvidersDir = gatewayConfig.getGatewayProvidersConfigDir();
this.descriptorsDir = gatewayConfig.getGatewayDescriptorsDir();
this.monitoringInterval =
gatewayConfig.getClouderaManagerDescriptorsMonitoringInterval();
@@ -65,14 +64,14 @@ public class ClouderaManagerDescriptorMonitor implements
AdvancedServiceDiscover
if (monitoringInterval > 0) {
final ScheduledExecutorService executorService =
Executors.newSingleThreadScheduledExecutor(new
BasicThreadFactory.Builder().namingPattern("ClouderaManagerDescriptorMonitor-%d").build());
executorService.scheduleAtFixedRate(() ->
monitorClouderaManagerDescriptors(null), 0, monitoringInterval,
TimeUnit.MILLISECONDS);
- LOG.monitoringClouderaManagerDescriptor(descriptorsDir);
+ LOG.monitoringHadoopXmlResources(descriptorsDir);
} else {
- LOG.disableMonitoringClouderaManagerDescriptor();
+ LOG.disableMonitoringHadoopXmlResources();
}
}
private void monitorClouderaManagerDescriptors(String topologyName) {
- final File[] clouderaManagerDescriptorFiles = new
File(descriptorsDir).listFiles((FileFilter) new
SuffixFileFilter(CM_DESCRIPTOR_FILE_EXTENSION));
+ final File[] clouderaManagerDescriptorFiles = new
File(descriptorsDir).listFiles((FileFilter) new
SuffixFileFilter(HADOOP_XML_RESOURCE_FILE_EXTENSION));
for (File clouderaManagerDescriptorFile : clouderaManagerDescriptorFiles) {
monitorClouderaManagerDescriptor(Paths.get(clouderaManagerDescriptorFile.getAbsolutePath()),
topologyName);
}
@@ -87,20 +86,20 @@ public class ClouderaManagerDescriptorMonitor implements
AdvancedServiceDiscover
processClouderaManagerDescriptor(clouderaManagerDescriptorFile.toString(),
topologyName);
}
} else {
-
LOG.failedToMonitorClouderaManagerDescriptor(clouderaManagerDescriptorFile.toString(),
"File is not readable!", null);
+
LOG.failedToMonitorHadoopXmlResource(clouderaManagerDescriptorFile.toString(),
"File is not readable!", null);
}
} catch (IOException e) {
-
LOG.failedToMonitorClouderaManagerDescriptor(clouderaManagerDescriptorFile.toString(),
e.getMessage(), e);
+
LOG.failedToMonitorHadoopXmlResource(clouderaManagerDescriptorFile.toString(),
e.getMessage(), e);
}
}
private void processClouderaManagerDescriptor(String descriptorFilePath,
String topologyName) {
- final ClouderaManagerDescriptorParserResult result =
cmDescriptorParser.parse(descriptorFilePath, topologyName);
+ final HadoopXmlResourceParserResult result =
hadoopXmlResourceParser.parse(descriptorFilePath, topologyName);
processSharedProviders(result);
processDescriptors(result);
}
- private void processSharedProviders(final
ClouderaManagerDescriptorParserResult result) {
+ private void processSharedProviders(final HadoopXmlResourceParserResult
result) {
result.getProviders().forEach((key, value) -> {
try {
final File knoxProviderConfigFile = new File(sharedProvidersDir, key +
".json");
@@ -117,7 +116,7 @@ public class ClouderaManagerDescriptorMonitor implements
AdvancedServiceDiscover
});
}
- private void processDescriptors(final ClouderaManagerDescriptorParserResult
result) {
+ private void processDescriptors(final HadoopXmlResourceParserResult result) {
result.getDescriptors().forEach(simpleDescriptor -> {
try {
final File knoxDescriptorFile = new File(descriptorsDir,
simpleDescriptor.getName() + ".json");
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParser.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParser.java
similarity index 91%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParser.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParser.java
index 122b798..2545583 100644
---
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParser.java
+++
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParser.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.knox.gateway.cm.descriptor;
+package org.apache.knox.gateway.topology.hadoop.xml;
import java.io.File;
import java.nio.file.Paths;
@@ -32,7 +32,6 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
-import org.apache.knox.gateway.ClouderaManagerIntegrationMessages;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
import
org.apache.knox.gateway.topology.discovery.advanced.AdvancedServiceDiscoveryConfig;
@@ -46,8 +45,12 @@ import
org.apache.knox.gateway.topology.simple.SimpleDescriptorImpl;
import
org.apache.knox.gateway.topology.simple.SimpleDescriptorImpl.ApplicationImpl;
import
org.apache.knox.gateway.topology.simple.SimpleDescriptorImpl.ServiceImpl;
-public class ClouderaManagerDescriptorParser implements
AdvancedServiceDiscoveryConfigChangeListener {
- private static final ClouderaManagerIntegrationMessages log =
MessagesFactory.get(ClouderaManagerIntegrationMessages.class);
+/**
+ * Parses Knox descriptors and provider configurations from Hadoop style XML
config
+ *
+ */
+public class HadoopXmlResourceParser implements
AdvancedServiceDiscoveryConfigChangeListener {
+ private static final HadoopXmlResourceMessages log =
MessagesFactory.get(HadoopXmlResourceMessages.class);
//shared provider related constants
private static final String CONFIG_NAME_PROVIDER_CONFIGS_PREFIX =
"providerConfigs:";
@@ -71,7 +74,7 @@ public class ClouderaManagerDescriptorParser implements
AdvancedServiceDiscovery
private final Map<String, AdvancedServiceDiscoveryConfig>
advancedServiceDiscoveryConfigMap;
private final String sharedProvidersDir;
- public ClouderaManagerDescriptorParser(GatewayConfig gatewayConfig) {
+ public HadoopXmlResourceParser(GatewayConfig gatewayConfig) {
this.advancedServiceDiscoveryConfigMap = new ConcurrentHashMap<>();
this.sharedProvidersDir = gatewayConfig.getGatewayProvidersConfigDir();
}
@@ -83,7 +86,7 @@ public class ClouderaManagerDescriptorParser implements
AdvancedServiceDiscovery
* The path to the configuration file which holds descriptor
information in a pre-defined format.
* @return A SimpleDescriptor based on the contents of the given file.
*/
- public ClouderaManagerDescriptorParserResult parse(String path) {
+ public HadoopXmlResourceParserResult parse(String path) {
return parse(path, null);
}
@@ -96,22 +99,31 @@ public class ClouderaManagerDescriptorParser implements
AdvancedServiceDiscovery
* if set, the parser should only parse a descriptor with the same
name
* @return A SimpleDescriptor based on the contents of the given file.
*/
- public ClouderaManagerDescriptorParserResult parse(String path, String
topologyName) {
+ public HadoopXmlResourceParserResult parse(String path, String topologyName)
{
try {
- log.parseClouderaManagerDescriptor(path, topologyName == null ? "all
topologies" : topologyName);
+ log.parseHadoopXmlResource(path, topologyName == null ? "all topologies"
: topologyName);
final Configuration xmlConfiguration = new Configuration(false);
xmlConfiguration.addResource(Paths.get(path).toUri().toURL());
xmlConfiguration.reloadConfiguration();
- final ClouderaManagerDescriptorParserResult descriptors =
parseXmlConfig(xmlConfiguration, topologyName);
- log.parsedClouderaManagerDescriptor(String.join(", ",
descriptors.getDescriptors().stream().map(descriptor ->
descriptor.getName()).collect(Collectors.toSet())), path);
- return descriptors;
+ final HadoopXmlResourceParserResult parserResult =
parseXmlConfig(xmlConfiguration, topologyName);
+ logParserResult(path, parserResult);
+ return parserResult;
} catch (Exception e) {
log.failedToParseXmlConfiguration(path, e.getMessage(), e);
- return new ClouderaManagerDescriptorParserResult();
+ return new HadoopXmlResourceParserResult();
+ }
+ }
+
+ private void logParserResult(String path, final
HadoopXmlResourceParserResult parserResult) {
+ if (!parserResult.getDescriptors().isEmpty()) {
+ log.foundKnoxDescriptors(String.join(", ",
parserResult.getDescriptors().stream().map(descriptor ->
descriptor.getName()).collect(Collectors.toSet())), path);
+ }
+ if (!parserResult.getProviders().isEmpty()) {
+ log.foundKnoxProviderConfigurations(String.join(", ",
parserResult.getProviders().keySet().stream().collect(Collectors.toSet())),
path);
}
}
- private ClouderaManagerDescriptorParserResult parseXmlConfig(Configuration
xmlConfiguration, String topologyName) {
+ private HadoopXmlResourceParserResult parseXmlConfig(Configuration
xmlConfiguration, String topologyName) {
final Map<String, ProviderConfiguration> providers = new LinkedHashMap<>();
final Set<SimpleDescriptor> descriptors = new LinkedHashSet<>();
xmlConfiguration.forEach(xmlDescriptor -> {
@@ -138,7 +150,7 @@ public class ClouderaManagerDescriptorParser implements
AdvancedServiceDiscovery
}
}
});
- return new ClouderaManagerDescriptorParserResult(providers, descriptors);
+ return new HadoopXmlResourceParserResult(providers, descriptors);
}
private ProviderConfiguration getProviderConfiguration(Map<String,
ProviderConfiguration> providers, File providerConfigFile, String
providerConfigName)
diff --git
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserResult.java
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserResult.java
similarity index 84%
rename from
gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserResult.java
rename to
gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserResult.java
index bd24626..378f73f 100644
---
a/gateway-cm-integration/src/main/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserResult.java
+++
b/gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserResult.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.knox.gateway.cm.descriptor;
+package org.apache.knox.gateway.topology.hadoop.xml;
import java.util.Collections;
import java.util.Map;
@@ -23,15 +23,15 @@ import java.util.Set;
import org.apache.knox.gateway.topology.simple.ProviderConfiguration;
import org.apache.knox.gateway.topology.simple.SimpleDescriptor;
-class ClouderaManagerDescriptorParserResult {
+class HadoopXmlResourceParserResult {
final Map<String, ProviderConfiguration> providers;
final Set<SimpleDescriptor> descriptors;
- ClouderaManagerDescriptorParserResult() {
+ HadoopXmlResourceParserResult() {
this(Collections.emptyMap(), Collections.emptySet());
}
- ClouderaManagerDescriptorParserResult(Map<String, ProviderConfiguration>
providers, Set<SimpleDescriptor> descriptors) {
+ HadoopXmlResourceParserResult(Map<String, ProviderConfiguration> providers,
Set<SimpleDescriptor> descriptors) {
this.providers = providers;
this.descriptors = descriptors;
}
diff --git
a/gateway-cm-integration/src/test/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserTest.java
b/gateway-topology-hadoop-xml/src/test/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserTest.java
similarity index 90%
rename from
gateway-cm-integration/src/test/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserTest.java
rename to
gateway-topology-hadoop-xml/src/test/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserTest.java
index d1c4dd6..a87a423 100644
---
a/gateway-cm-integration/src/test/java/org/apache/knox/gateway/cm/descriptor/ClouderaManagerDescriptorParserTest.java
+++
b/gateway-topology-hadoop-xml/src/test/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParserTest.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.knox.gateway.cm.descriptor;
+package org.apache.knox.gateway.topology.hadoop.xml;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -48,13 +48,13 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-public class ClouderaManagerDescriptorParserTest {
+public class HadoopXmlResourceParserTest {
@Rule
public TemporaryFolder tempDir = new TemporaryFolder();
private GatewayConfig gatewayConfigMock;
- private ClouderaManagerDescriptorParser cmDescriptorParser;
+ private HadoopXmlResourceParser hadoopXmlResourceParser;
private File providersDir;
@Before
@@ -63,13 +63,13 @@ public class ClouderaManagerDescriptorParserTest {
gatewayConfigMock = EasyMock.createNiceMock(GatewayConfig.class);
EasyMock.expect(gatewayConfigMock.getGatewayProvidersConfigDir()).andReturn(providersDir.getAbsolutePath()).anyTimes();
EasyMock.replay(gatewayConfigMock);
- cmDescriptorParser = new
ClouderaManagerDescriptorParser(gatewayConfigMock);
+ hadoopXmlResourceParser = new HadoopXmlResourceParser(gatewayConfigMock);
}
@Test
public void testCMDescriptorParser() throws Exception {
final String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptor.xml").getPath();
- final ClouderaManagerDescriptorParserResult parserResult =
cmDescriptorParser.parse(testConfigPath);
+ final HadoopXmlResourceParserResult parserResult =
hadoopXmlResourceParser.parse(testConfigPath);
final Set<SimpleDescriptor> descriptors = parserResult.getDescriptors();
assertEquals(2, descriptors.size());
final Iterator<SimpleDescriptor> descriptorsIterator =
descriptors.iterator();
@@ -81,7 +81,7 @@ public class ClouderaManagerDescriptorParserTest {
@Test
public void testCMDescriptorParserOnlyTopology2() throws Exception {
final String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptor.xml").getPath();
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath, "topology2").getDescriptors();
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath, "topology2").getDescriptors();
assertEquals(1, descriptors.size());
validateTopology2Descriptors(descriptors.iterator().next(), true);
}
@@ -89,7 +89,7 @@ public class ClouderaManagerDescriptorParserTest {
@Test
public void testCMDescriptorParserWrongDescriptorContent() throws Exception {
final String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptorConfigurationWithWrongDescriptor.xml").getPath();
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath).getDescriptors();
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath).getDescriptors();
assertEquals(1, descriptors.size());
final Iterator<SimpleDescriptor> descriptorsIterator =
descriptors.iterator();
validateTopology1Descriptors(descriptorsIterator.next());
@@ -98,7 +98,7 @@ public class ClouderaManagerDescriptorParserTest {
@Test
public void testCMDescriptorParserWrongXMLContent() throws Exception {
final String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptorConfigurationWithNonHadoopStyleConfiguration.xml").getPath();
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath).getDescriptors();
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath).getDescriptors();
assertTrue(descriptors.isEmpty());
}
@@ -109,14 +109,14 @@ public class ClouderaManagerDescriptorParserTest {
final Properties advancedConfigurationTopology1 = new Properties();
advancedConfigurationTopology1.put(buildEnabledParameter("topology1",
"HIVE"), "false");
advancedConfigurationTopology1.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_TOPOLOGY_NAME,
"topology1");
-
cmDescriptorParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfigurationTopology1);
+
hadoopXmlResourceParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfigurationTopology1);
final Properties advancedConfigurationTopology2 = new Properties();
advancedConfigurationTopology2.put(buildEnabledParameter("topology2",
"NIFI"), "false");
advancedConfigurationTopology2.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_TOPOLOGY_NAME,
"topology2");
-
cmDescriptorParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfigurationTopology2);
+
hadoopXmlResourceParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfigurationTopology2);
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath).getDescriptors();
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath).getDescriptors();
assertEquals(2, descriptors.size());
final Iterator<SimpleDescriptor> descriptorsIterator =
descriptors.iterator();
SimpleDescriptor topology1 = descriptorsIterator.next();
@@ -136,8 +136,8 @@ public class ClouderaManagerDescriptorParserTest {
final Properties advancedConfiguration = new Properties();
advancedConfiguration.put(buildEnabledParameter("topology1", "oozie"),
"true"); //it should not matter if service name is lowercase advanced
configuration
advancedConfiguration.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_TOPOLOGY_NAME,
"topology1");
-
cmDescriptorParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfiguration);
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath).getDescriptors();
+
hadoopXmlResourceParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfiguration);
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath).getDescriptors();
final Iterator<SimpleDescriptor> descriptorsIterator =
descriptors.iterator();
SimpleDescriptor descriptor = descriptorsIterator.next();
assertNotNull(descriptor);
@@ -152,7 +152,7 @@ public class ClouderaManagerDescriptorParserTest {
@Test
public void testCMDescriptorParserModifyingProviderParams() {
String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptor.xml").getPath();
- ClouderaManagerDescriptorParserResult parserResult =
cmDescriptorParser.parse(testConfigPath);
+ HadoopXmlResourceParserResult parserResult =
hadoopXmlResourceParser.parse(testConfigPath);
validateTestDescriptorProviderConfigs(parserResult.getProviders(),
"ldap://localhost:33389");
//saving admin and knoxsso shared-providers with LDAP authentication
provider only
@@ -168,14 +168,14 @@ public class ClouderaManagerDescriptorParserTest {
//updating LDAP URL from ldap://localhost:33389 to ldaps://localhost:33390
in 'admin'
testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptorWithAdminProviderConfigUpdatedLdapUrl.xml").getPath();
- parserResult = cmDescriptorParser.parse(testConfigPath);
+ parserResult = hadoopXmlResourceParser.parse(testConfigPath);
validateTestDescriptorProviderConfigs(parserResult.getProviders(),
"ldaps://localhost:33390", true, true);
}
@Test
public void testCMDescriptorParserRemovingProviderParams() {
String testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptor.xml").getPath();
- ClouderaManagerDescriptorParserResult parserResult =
cmDescriptorParser.parse(testConfigPath);
+ HadoopXmlResourceParserResult parserResult =
hadoopXmlResourceParser.parse(testConfigPath);
//saving admin and knoxsso shared-providers with LDAP authentication
provider only
parserResult.getProviders().forEach((key, value) -> {
final File knoxProviderConfigFile = new File(providersDir, key +
".json");
@@ -189,7 +189,7 @@ public class ClouderaManagerDescriptorParserTest {
//removed 'main.ldapRealm.userDnTemplate' parameter from 'admin'
testConfigPath =
this.getClass().getClassLoader().getResource("testDescriptorWithAdminProviderConfigRemovedUserDnTemplate.xml").getPath();
- parserResult = cmDescriptorParser.parse(testConfigPath);
+ parserResult = hadoopXmlResourceParser.parse(testConfigPath);
validateTestDescriptorProviderConfigs(parserResult.getProviders(),
"ldap://localhost:33389", true, false);
}
@@ -206,8 +206,8 @@ public class ClouderaManagerDescriptorParserTest {
advancedConfiguration.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_TOPOLOGY_NAME,
"topology1");
advancedConfiguration.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_DISCOVERY_ADDRESS,
address);
advancedConfiguration.put(AdvancedServiceDiscoveryConfig.PARAMETER_NAME_DISCOVERY_CLUSTER,
cluster);
-
cmDescriptorParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfiguration);
- final Set<SimpleDescriptor> descriptors =
cmDescriptorParser.parse(testConfigPath).getDescriptors();
+
hadoopXmlResourceParser.onAdvancedServiceDiscoveryConfigurationChange(advancedConfiguration);
+ final Set<SimpleDescriptor> descriptors =
hadoopXmlResourceParser.parse(testConfigPath).getDescriptors();
final Iterator<SimpleDescriptor> descriptorsIterator =
descriptors.iterator();
SimpleDescriptor descriptor = descriptorsIterator.next();
assertEquals(address, descriptor.getDiscoveryAddress());
diff --git a/gateway-cm-integration/src/test/resources/testDescriptor.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptor.xml
similarity index 100%
rename from gateway-cm-integration/src/test/resources/testDescriptor.xml
rename to gateway-topology-hadoop-xml/src/test/resources/testDescriptor.xml
diff --git
a/gateway-cm-integration/src/test/resources/testDescriptorConfigurationWithNonHadoopStyleConfiguration.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptorConfigurationWithNonHadoopStyleConfiguration.xml
similarity index 100%
rename from
gateway-cm-integration/src/test/resources/testDescriptorConfigurationWithNonHadoopStyleConfiguration.xml
rename to
gateway-topology-hadoop-xml/src/test/resources/testDescriptorConfigurationWithNonHadoopStyleConfiguration.xml
diff --git
a/gateway-cm-integration/src/test/resources/testDescriptorConfigurationWithWrongDescriptor.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptorConfigurationWithWrongDescriptor.xml
similarity index 100%
rename from
gateway-cm-integration/src/test/resources/testDescriptorConfigurationWithWrongDescriptor.xml
rename to
gateway-topology-hadoop-xml/src/test/resources/testDescriptorConfigurationWithWrongDescriptor.xml
diff --git
a/gateway-cm-integration/src/test/resources/testDescriptorWithAdminProviderConfigRemovedUserDnTemplate.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithAdminProviderConfigRemovedUserDnTemplate.xml
similarity index 100%
rename from
gateway-cm-integration/src/test/resources/testDescriptorWithAdminProviderConfigRemovedUserDnTemplate.xml
rename to
gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithAdminProviderConfigRemovedUserDnTemplate.xml
diff --git
a/gateway-cm-integration/src/test/resources/testDescriptorWithAdminProviderConfigUpdatedLdapUrl.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithAdminProviderConfigUpdatedLdapUrl.xml
similarity index 100%
rename from
gateway-cm-integration/src/test/resources/testDescriptorWithAdminProviderConfigUpdatedLdapUrl.xml
rename to
gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithAdminProviderConfigUpdatedLdapUrl.xml
diff --git
a/gateway-cm-integration/src/test/resources/testDescriptorWithoutDiscoveryDetails.xml
b/gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithoutDiscoveryDetails.xml
similarity index 100%
rename from
gateway-cm-integration/src/test/resources/testDescriptorWithoutDiscoveryDetails.xml
rename to
gateway-topology-hadoop-xml/src/test/resources/testDescriptorWithoutDiscoveryDetails.xml
diff --git a/pom.xml b/pom.xml
index 085650b..01464bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,7 +138,7 @@
<module>gateway-service-hashicorp-vault</module>
<module>gateway-release-common</module>
<module>gateway-topology-simple</module>
- <module>gateway-cm-integration</module>
+ <module>gateway-topology-hadoop-xml</module>
<module>gateway-service-metadata</module>
<module>knox-homepage-ui</module>
</modules>
@@ -1174,7 +1174,7 @@
</dependency>
<dependency>
<groupId>org.apache.knox</groupId>
- <artifactId>gateway-cm-integration</artifactId>
+ <artifactId>gateway-topology-hadoop-xml</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>