use of com.adaptris.core.common.Execution in project interlok by adaptris.
the class XPathServiceTest method testPayloadSimpleValueXPathIntoPayload.
@Test
public void testPayloadSimpleValueXPathIntoPayload() throws Exception {
message.setContent(sampleXml, message.getContentEncoding());
message.addMetadata("sourceXpathMetadataKey", "//some/random/xml/node1/text()");
MetadataDataInputParameter metadataDataDestination1 = new MetadataDataInputParameter("sourceXpathMetadataKey");
Execution execution = new Execution(metadataDataDestination1, new StringPayloadDataOutputParameter());
List<Execution> executions = new ArrayList<>();
executions.add(execution);
service.setXmlSource(new StringPayloadDataInputParameter());
service.setExecutions(executions);
execute(service, message);
assertEquals("value1", message.getContent());
}
use of com.adaptris.core.common.Execution in project interlok by adaptris.
the class XPathServiceTest method testPayloadSimpleValueXPathIntoPayloadWithHeaderNamespaces.
@Test
public void testPayloadSimpleValueXPathIntoPayloadWithHeaderNamespaces() throws Exception {
message.setContent(sampleXmlWithHeaderNamespaces, message.getContentEncoding());
message.addMetadata("sourceXpathMetadataKey", "//some:some/random/xml/n1:node1/text()");
MetadataDataInputParameter metadataDataDestination1 = new MetadataDataInputParameter("sourceXpathMetadataKey");
Execution execution = new Execution(metadataDataDestination1, new StringPayloadDataOutputParameter());
List<Execution> executions = new ArrayList<>();
executions.add(execution);
// Add the namespace mappings
KeyValuePairSet namespaceMappings = new KeyValuePairSet();
namespaceMappings.addKeyValuePair(new KeyValuePair("some", "http://adaptris.com/xml/some"));
namespaceMappings.addKeyValuePair(new KeyValuePair("n1", "http://adaptris.com/xml/n1"));
namespaceMappings.addKeyValuePair(new KeyValuePair("n2", "http://adaptris.com/xml/n2"));
namespaceMappings.addKeyValuePair(new KeyValuePair("n3", "http://adaptris.com/xml/n3"));
service.setNamespaceContext(namespaceMappings);
service.setXmlSource(new StringPayloadDataInputParameter());
service.setExecutions(executions);
execute(service, message);
assertEquals("value1", message.getContent());
}
use of com.adaptris.core.common.Execution in project interlok by adaptris.
the class XPathServiceTest method testPayloadSimpleValueXPathIntoPayloadWithNamespace.
@Test
public void testPayloadSimpleValueXPathIntoPayloadWithNamespace() throws Exception {
message.setContent(sampleXmlWithInternalNamespaces, message.getContentEncoding());
message.addMetadata("sourceXpathMetadataKey", "//some/random/xml/node1/text()");
MetadataDataInputParameter metadataDataDestination1 = new MetadataDataInputParameter("sourceXpathMetadataKey");
Execution execution = new Execution(metadataDataDestination1, new StringPayloadDataOutputParameter());
List<Execution> executions = new ArrayList<>();
executions.add(execution);
service.setXmlSource(new StringPayloadDataInputParameter());
service.setExecutions(executions);
execute(service, message);
assertEquals("value1", message.getContent());
}
use of com.adaptris.core.common.Execution in project interlok by adaptris.
the class XPathService method doService.
// @Override
@Override
public void doService(AdaptrisMessage msg) throws ServiceException {
NamespaceContext namespaceContext = SimpleNamespaceContext.create(getNamespaceContext(), msg);
try {
DocumentBuilderFactoryBuilder builder = documentFactoryBuilder(namespaceContext);
Document document = buildDocument(builder, this.getXmlSource().extract(msg));
XPath xPathHandler = XPath.newXPathInstance(builder, namespaceContext);
for (Execution execution : this.getExecutions()) {
String result = this.serializeNode(xPathHandler.selectNodeList(document, execution.getSource().extract(msg)));
execution.getTarget().insert(result, msg);
}
} catch (Exception ex) {
throw new ServiceException(ex);
}
}
use of com.adaptris.core.common.Execution in project interlok by adaptris.
the class XPathServiceTest method testPayloadAttributeValueXPathIntoMetadata.
@Test
public void testPayloadAttributeValueXPathIntoMetadata() throws Exception {
message.setContent(sampleXml, message.getContentEncoding());
MetadataDataOutputParameter metadataDataDestination1 = new MetadataDataOutputParameter("targetMetadataKey");
ConstantDataInputParameter constantDataDestination = new ConstantDataInputParameter("//some/random/xml/node1/@attr");
Execution execution = new Execution(constantDataDestination, metadataDataDestination1);
List<Execution> executions = new ArrayList<>();
executions.add(execution);
service.setXmlSource(new StringPayloadDataInputParameter());
service.setExecutions(executions);
execute(service, message);
assertEquals("attribute value", message.getMetadataValue("targetMetadataKey"));
}
Aggregations