in gateway-topology-hadoop-xml/src/main/java/org/apache/knox/gateway/topology/hadoop/xml/HadoopXmlResourceParser.java [237:286]
private SimpleDescriptor parseXmlDescriptor(String name, String xmlValue) {
try {
final SimpleDescriptorImpl descriptor = new SimpleDescriptorImpl();
descriptor.setReadOnly(true);
descriptor.setName(name);
final String[] configurationPairs = xmlValue.split("#");
for (String configurationPair : configurationPairs) {
String[] parameterPairParts = configurationPair.trim().split("=", 2);
String parameterName = parameterPairParts[0].trim();
switch (parameterName) {
case CONFIG_NAME_DISCOVERY_TYPE:
descriptor.setDiscoveryType(parameterPairParts[1].trim());
break;
case CONFIG_NAME_DISCOVERY_ADDRESS:
descriptor.setDiscoveryAddress(parameterPairParts[1].trim());
break;
case CONFIG_NAME_DISCOVERY_USER:
descriptor.setDiscoveryUser(parameterPairParts[1].trim());
break;
case CONFIG_NAME_DISCOVERY_PASSWORD_ALIAS:
descriptor.setDiscoveryPasswordAlias(parameterPairParts[1].trim());
break;
case CONFIG_NAME_DISCOVERY_CLUSTER:
descriptor.setCluster(parameterPairParts[1].trim());
break;
case CONFIG_NAME_PROVIDER_CONFIG_REFERENCE:
descriptor.setProviderConfig(parameterPairParts[1].trim());
break;
case CONFIG_NAME_PROVISION_ENCRYPT_QUERY_STRING_CREDENTIAL:
descriptor.setProvisionEncryptQueryStringCredential(Boolean.valueOf(parameterPairParts[1].trim()));
break;
case CONFIG_NAME_SERVICES:
Arrays.asList(parameterPairParts[1].trim().split(",", -1)).forEach(serviceName -> descriptor.addService(emptyService(serviceName)));
break;
default:
if (parameterName.startsWith(CONFIG_NAME_APPLICATION_PREFIX)) {
parseApplication(descriptor, configurationPair.trim());
} else {
parseService(descriptor, configurationPair.trim());
}
break;
}
}
return descriptor;
} catch (Exception e) {
log.failedToParseDescriptor(name, e.getMessage(), e);
return null;
}
}