use of org.apache.knox.gateway.descriptor.ResourceDescriptor in project knox by apache.
the class GatewayFactory method createParams.
private static Map<String, String> createParams(FilterDescriptor filter) {
Map<String, String> paramMap = new HashMap<>();
ResourceDescriptor resource = filter.up();
GatewayDescriptor gateway = resource.up();
for (GatewayParamDescriptor param : gateway.params()) {
paramMap.put(param.name(), param.value());
}
for (ResourceParamDescriptor param : resource.params()) {
paramMap.put(param.name(), param.value());
}
// TODO: Should all elements of the resource and gateway descriptor somehow be added to the filter params?
// TODO: Should we use some composite params object instead of copying all these name value pairs?
paramMap.put("pattern", resource.pattern());
List<FilterParamDescriptor> paramList = filter.params();
for (FilterParamDescriptor param : paramList) {
paramMap.put(param.name(), param.value());
}
return paramMap;
}
use of org.apache.knox.gateway.descriptor.ResourceDescriptor in project knox by apache.
the class XmlGatewayDescriptorExporter method store.
@Override
public void store(GatewayDescriptor descriptor, Writer writer) throws IOException {
try {
Document document = XmlUtils.createDocument();
Element gateway = document.createElement(GATEWAY);
document.appendChild(gateway);
for (ResourceDescriptor resource : descriptor.resources()) {
gateway.appendChild(createResource(document, resource));
}
XmlUtils.writeXml(document, writer);
} catch (ParserConfigurationException e) {
throw new IOException(e);
} catch (TransformerException e) {
throw new IOException(e);
}
}
use of org.apache.knox.gateway.descriptor.ResourceDescriptor in project knox by apache.
the class XmlGatewayDescriptorImporterTest method testXmlGatewayDescriptorLoad.
@Test
public void testXmlGatewayDescriptorLoad() throws IOException {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<gateway>\n" + " <resource>\n" + " <pattern>resource1-source</pattern>\n" + // " <target>resource1-target</target>\n" +
" <filter>\n" + " <role>resource1-filter1-role</role>\n" + " <class>resource1-filter1-impl</class>\n" + " <param>\n" + " <name>resource1-filter1-param1-name</name>\n" + " <value>resource1-filter1-param1-value</value>\n" + " </param>\n" + " <param>\n" + " <name>resource1-filter1-param2-name</name>\n" + " <value>resource1-filter1-param2-value</value>\n" + " </param>\n" + " </filter>\n" + " <filter>\n" + " <role>resource1-filter2-role</role>\n" + " <class>resource1-filter2-impl</class>\n" + " </filter>\n" + " </resource>\n" + " <resource>\n" + " <pattern>resource2-source</pattern>\n" + // " <target>resource2-target</target>\n" +
" </resource>\n" + "</gateway>";
Reader reader = new StringReader(xml);
GatewayDescriptor descriptor = GatewayDescriptorFactory.load("xml", reader);
assertThat(descriptor, notNullValue());
assertThat(descriptor.resources().size(), is(2));
ResourceDescriptor resource1 = descriptor.resources().get(0);
assertThat(resource1, notNullValue());
assertThat(resource1.pattern(), is("resource1-source"));
assertThat(resource1.filters().size(), is(2));
FilterDescriptor filter1 = resource1.filters().get(0);
assertThat(filter1, notNullValue());
assertThat(filter1.role(), is("resource1-filter1-role"));
assertThat(filter1.impl(), is("resource1-filter1-impl"));
assertThat(filter1.params().size(), is(2));
FilterParamDescriptor param1 = filter1.params().get(0);
assertThat(param1, notNullValue());
assertThat(param1.name(), is("resource1-filter1-param1-name"));
assertThat(param1.value(), is("resource1-filter1-param1-value"));
FilterParamDescriptor param2 = filter1.params().get(1);
assertThat(param2, notNullValue());
assertThat(param2.name(), is("resource1-filter1-param2-name"));
assertThat(param2.value(), is("resource1-filter1-param2-value"));
FilterDescriptor filter2 = resource1.filters().get(1);
assertThat(filter2, notNullValue());
assertThat(filter2.role(), is("resource1-filter2-role"));
assertThat(filter2.impl(), is("resource1-filter2-impl"));
ResourceDescriptor resource2 = descriptor.resources().get(1);
assertThat(resource2, notNullValue());
assertThat(resource2.pattern(), is("resource2-source"));
}
use of org.apache.knox.gateway.descriptor.ResourceDescriptor in project knox by apache.
the class XmlGatewayDescriptorImporterTest method testXmlGatewayDescriptorLoadEmpty.
@Test
public void testXmlGatewayDescriptorLoadEmpty() throws IOException {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<gateway>\n" + " <resource>\n" + " <filter>\n" + " <param>\n" + " </param>\n" + " </filter>\n" + " </resource>\n" + "</gateway>";
Reader reader = new StringReader(xml);
GatewayDescriptor descriptor = GatewayDescriptorFactory.load("xml", reader);
assertThat(descriptor, notNullValue());
assertThat(descriptor.resources().size(), is(1));
ResourceDescriptor resource1 = descriptor.resources().get(0);
assertThat(resource1, notNullValue());
assertThat(resource1.filters().size(), is(1));
FilterDescriptor filter1 = resource1.filters().get(0);
assertThat(filter1, notNullValue());
assertThat(filter1.params().size(), is(1));
FilterParamDescriptor param1 = filter1.params().get(0);
assertThat(param1, notNullValue());
}
Aggregations