use of nl.nn.adapterframework.parameters.Parameter in project iaf by ibissource.
the class PutParametersInSession method doPipe.
public PipeRunResult doPipe(Object input, IPipeLineSession session) throws PipeRunException {
ParameterValueList pvl = null;
ParameterList parameterList = getParameterList();
if (parameterList != null) {
ParameterResolutionContext prc = new ParameterResolutionContext((String) input, session);
try {
pvl = prc.getValues(getParameterList());
if (pvl != null) {
for (int i = 0; i < parameterList.size(); i++) {
Parameter parameter = parameterList.getParameter(i);
String pn = parameter.getName();
Object pv = parameter.getValue(pvl, prc);
session.put(pn, pv);
log.debug(getLogPrefix(session) + "stored [" + pv + "] in pipeLineSession under key [" + pn + "]");
}
}
} catch (ParameterException e) {
throw new PipeRunException(this, getLogPrefix(session) + "exception extracting parameters", e);
}
}
return new PipeRunResult(getForward(), input);
}
use of nl.nn.adapterframework.parameters.Parameter in project iaf by ibissource.
the class FlowDiagram method runCommandSender.
private void runCommandSender(File dotFile, File outFile) throws SenderException, ConfigurationException, TimeOutException {
CommandSender commandSender = null;
try {
commandSender = new CommandSender();
commandSender.setCommand(url);
commandSender.setCommandWithArguments(true);
commandSender.setTimeOut(10);
Parameter p = new Parameter();
p.setName("arg1");
p.setValue("-T" + format);
commandSender.addParameter(p);
p = new Parameter();
p.setName("arg2");
p.setValue(dotFile.getPath());
commandSender.addParameter(p);
p = new Parameter();
p.setName("arg3");
p.setValue("-o");
commandSender.addParameter(p);
p = new Parameter();
p.setName("arg4");
p.setValue(outFile.getPath());
commandSender.addParameter(p);
commandSender.configure();
commandSender.open();
ParameterResolutionContext prc = new ParameterResolutionContext("dummy", new PipeLineSessionBase());
String result = commandSender.sendMessage(null, "", prc);
} finally {
if (commandSender != null) {
commandSender.close();
}
}
}
use of nl.nn.adapterframework.parameters.Parameter in project iaf by ibissource.
the class XsltPipe method configure.
/**
* The <code>configure()</code> method instantiates a transformer for the specified
* XSL. If the stylesheetname cannot be accessed, a ConfigurationException is thrown.
* @throws ConfigurationException
*/
@Override
public void configure() throws ConfigurationException {
super.configure();
transformerPool = TransformerPool.configureTransformer0(getLogPrefix(null), classLoader, getNamespaceDefs(), getXpathExpression(), getStyleSheetName(), getOutputType(), !isOmitXmlDeclaration(), getParameterList(), isXslt2());
if (isSkipEmptyTags()) {
String skipEmptyTags_xslt = XmlUtils.makeSkipEmptyTagsXslt(isOmitXmlDeclaration(), isIndentXml());
log.debug("test [" + skipEmptyTags_xslt + "]");
try {
transformerPoolSkipEmptyTags = TransformerPool.getInstance(skipEmptyTags_xslt);
} catch (TransformerConfigurationException te) {
throw new ConfigurationException(getLogPrefix(null) + "got error creating transformer from skipEmptyTags", te);
}
}
if (isRemoveNamespaces()) {
String removeNamespaces_xslt = XmlUtils.makeRemoveNamespacesXslt(isOmitXmlDeclaration(), isIndentXml());
log.debug("test [" + removeNamespaces_xslt + "]");
try {
transformerPoolRemoveNamespaces = TransformerPool.getInstance(removeNamespaces_xslt);
} catch (TransformerConfigurationException te) {
throw new ConfigurationException(getLogPrefix(null) + "got error creating transformer from removeNamespaces", te);
}
}
if (isXslt2()) {
ParameterList parameterList = getParameterList();
for (int i = 0; i < parameterList.size(); i++) {
Parameter parameter = parameterList.getParameter(i);
if (StringUtils.isNotEmpty(parameter.getType()) && "node".equalsIgnoreCase(parameter.getType())) {
throw new ConfigurationException(getLogPrefix(null) + "type \"node\" is not permitted in combination with XSLT 2.0, use type \"domdoc\"");
}
}
}
}
use of nl.nn.adapterframework.parameters.Parameter in project iaf by ibissource.
the class TestTool method openQueues.
public static Map openQueues(String scenarioDirectory, List steps, Properties properties, IbisContext ibisContext, Map writers) {
Map queues = new HashMap();
debugMessage("Get all queue names", writers);
List jmsSenders = new ArrayList();
List jmsListeners = new ArrayList();
List jdbcFixedQuerySenders = new ArrayList();
List ibisWebServiceSenders = new ArrayList();
List webServiceSenders = new ArrayList();
List webServiceListeners = new ArrayList();
List httpSenders = new ArrayList();
List ibisJavaSenders = new ArrayList();
List delaySenders = new ArrayList();
List javaListeners = new ArrayList();
List fileSenders = new ArrayList();
List fileListeners = new ArrayList();
List xsltProviderListeners = new ArrayList();
Iterator iterator = properties.keySet().iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
int i = key.indexOf('.');
if (i != -1) {
int j = key.indexOf('.', i + 1);
if (j != -1) {
String queueName = key.substring(0, j);
debugMessage("queuename openqueue: " + queueName, writers);
if ("nl.nn.adapterframework.jms.JmsSender".equals(properties.get(queueName + ".className")) && !jmsSenders.contains(queueName)) {
debugMessage("Adding jmsSender queue: " + queueName, writers);
jmsSenders.add(queueName);
} else if ("nl.nn.adapterframework.jms.JmsListener".equals(properties.get(queueName + ".className")) && !jmsListeners.contains(queueName)) {
debugMessage("Adding jmsListener queue: " + queueName, writers);
jmsListeners.add(queueName);
} else if ("nl.nn.adapterframework.jdbc.FixedQuerySender".equals(properties.get(queueName + ".className")) && !jdbcFixedQuerySenders.contains(queueName)) {
debugMessage("Adding jdbcFixedQuerySender queue: " + queueName, writers);
jdbcFixedQuerySenders.add(queueName);
} else if ("nl.nn.adapterframework.http.IbisWebServiceSender".equals(properties.get(queueName + ".className")) && !ibisWebServiceSenders.contains(queueName)) {
debugMessage("Adding ibisWebServiceSender queue: " + queueName, writers);
ibisWebServiceSenders.add(queueName);
} else if ("nl.nn.adapterframework.http.WebServiceSender".equals(properties.get(queueName + ".className")) && !webServiceSenders.contains(queueName)) {
debugMessage("Adding webServiceSender queue: " + queueName, writers);
webServiceSenders.add(queueName);
} else if ("nl.nn.adapterframework.http.WebServiceListener".equals(properties.get(queueName + ".className")) && !webServiceListeners.contains(queueName)) {
debugMessage("Adding webServiceListener queue: " + queueName, writers);
webServiceListeners.add(queueName);
} else if ("nl.nn.adapterframework.http.HttpSender".equals(properties.get(queueName + ".className")) && !httpSenders.contains(queueName)) {
debugMessage("Adding httpSender queue: " + queueName, writers);
httpSenders.add(queueName);
} else if ("nl.nn.adapterframework.senders.IbisJavaSender".equals(properties.get(queueName + ".className")) && !ibisJavaSenders.contains(queueName)) {
debugMessage("Adding ibisJavaSender queue: " + queueName, writers);
ibisJavaSenders.add(queueName);
} else if ("nl.nn.adapterframework.senders.DelaySender".equals(properties.get(queueName + ".className")) && !delaySenders.contains(queueName)) {
debugMessage("Adding delaySender queue: " + queueName, writers);
delaySenders.add(queueName);
} else if ("nl.nn.adapterframework.receivers.JavaListener".equals(properties.get(queueName + ".className")) && !javaListeners.contains(queueName)) {
debugMessage("Adding javaListener queue: " + queueName, writers);
javaListeners.add(queueName);
} else if ("nl.nn.adapterframework.testtool.FileSender".equals(properties.get(queueName + ".className")) && !fileSenders.contains(queueName)) {
debugMessage("Adding fileSender queue: " + queueName, writers);
fileSenders.add(queueName);
} else if ("nl.nn.adapterframework.testtool.FileListener".equals(properties.get(queueName + ".className")) && !fileListeners.contains(queueName)) {
debugMessage("Adding fileListener queue: " + queueName, writers);
fileListeners.add(queueName);
} else if ("nl.nn.adapterframework.testtool.XsltProviderListener".equals(properties.get(queueName + ".className")) && !xsltProviderListeners.contains(queueName)) {
debugMessage("Adding xsltProviderListeners queue: " + queueName, writers);
xsltProviderListeners.add(queueName);
}
}
}
}
debugMessage("Initialize jms senders", writers);
iterator = jmsSenders.iterator();
while (queues != null && iterator.hasNext()) {
String queueName = (String) iterator.next();
String queue = (String) properties.get(queueName + ".queue");
if (queue == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find property '" + queueName + ".queue'", writers);
} else {
JmsSender jmsSender = (JmsSender) ibisContext.createBeanAutowireByName(JmsSender.class);
jmsSender.setName("Test Tool JmsSender");
jmsSender.setDestinationName(queue);
jmsSender.setDestinationType("QUEUE");
jmsSender.setAcknowledgeMode("auto");
String jmsRealm = (String) properties.get(queueName + ".jmsRealm");
if (jmsRealm != null) {
jmsSender.setJmsRealm(jmsRealm);
} else {
jmsSender.setJmsRealm("default");
}
String deliveryMode = properties.getProperty(queueName + ".deliveryMode");
debugMessage("Property '" + queueName + ".deliveryMode': " + deliveryMode, writers);
String persistent = properties.getProperty(queueName + ".persistent");
debugMessage("Property '" + queueName + ".persistent': " + persistent, writers);
String useCorrelationIdFrom = properties.getProperty(queueName + ".useCorrelationIdFrom");
debugMessage("Property '" + queueName + ".useCorrelationIdFrom': " + useCorrelationIdFrom, writers);
String replyToName = properties.getProperty(queueName + ".replyToName");
debugMessage("Property '" + queueName + ".replyToName': " + replyToName, writers);
if (deliveryMode != null) {
debugMessage("Set deliveryMode to " + deliveryMode, writers);
jmsSender.setDeliveryMode(deliveryMode);
}
if ("true".equals(persistent)) {
debugMessage("Set persistent to true", writers);
jmsSender.setPersistent(true);
} else {
debugMessage("Set persistent to false", writers);
jmsSender.setPersistent(false);
}
if (replyToName != null) {
debugMessage("Set replyToName to " + replyToName, writers);
jmsSender.setReplyToName(replyToName);
}
Map jmsSenderInfo = new HashMap();
jmsSenderInfo.put("jmsSender", jmsSender);
jmsSenderInfo.put("useCorrelationIdFrom", useCorrelationIdFrom);
String correlationId = properties.getProperty(queueName + ".jmsCorrelationId");
if (correlationId != null) {
jmsSenderInfo.put("jmsCorrelationId", correlationId);
debugMessage("Property '" + queueName + ".jmsCorrelationId': " + correlationId, writers);
}
queues.put(queueName, jmsSenderInfo);
debugMessage("Opened jms sender '" + queueName + "'", writers);
}
}
debugMessage("Initialize jms listeners", writers);
iterator = jmsListeners.iterator();
while (queues != null && iterator.hasNext()) {
String queueName = (String) iterator.next();
String queue = (String) properties.get(queueName + ".queue");
String timeout = (String) properties.get(queueName + ".timeout");
int nTimeout = DEFAULT_TIMEOUT;
if (timeout != null && timeout.length() > 0) {
nTimeout = Integer.parseInt(timeout);
debugMessage("Overriding default timeout setting of " + DEFAULT_TIMEOUT + " with " + nTimeout, writers);
}
if (queue == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find property '" + queueName + ".queue'", writers);
} else {
PullingJmsListener pullingJmsListener = (PullingJmsListener) ibisContext.createBeanAutowireByName(PullingJmsListener.class);
pullingJmsListener.setName("Test Tool JmsListener");
pullingJmsListener.setDestinationName(queue);
pullingJmsListener.setDestinationType("QUEUE");
pullingJmsListener.setAcknowledgeMode("auto");
String jmsRealm = (String) properties.get(queueName + ".jmsRealm");
if (jmsRealm != null) {
pullingJmsListener.setJmsRealm(jmsRealm);
} else {
pullingJmsListener.setJmsRealm("default");
}
// Call setJmsRealm twice as a workaround for a strange bug
// where we get a java.lang.NullPointerException in a class of
// the commons-beanutils.jar on the first call to setJmsRealm
// after starting the Test Tool ear:
// at org.apache.commons.beanutils.MappedPropertyDescriptor.internalFindMethod(MappedPropertyDescriptor.java(Compiled Code))
// at org.apache.commons.beanutils.MappedPropertyDescriptor.internalFindMethod(MappedPropertyDescriptor.java:413)
// ...
// Looks like some sort of classloader problem where
// internalFindMethod on another class is called (last line in
// stacktrace has "Compiled Code" while other lines have
// linenumbers).
// Can be reproduced with for example:
// - WebSphere Studio Application Developer (Windows) Version: 5.1.2
// - Ibis4Juice build 20051104-1351
// - y01\rr\getAgent1003\scenario01.properties
pullingJmsListener.setTimeOut(nTimeout);
String setForceMessageIdAsCorrelationId = (String) properties.get(queueName + ".setForceMessageIdAsCorrelationId");
if ("true".equals(setForceMessageIdAsCorrelationId)) {
pullingJmsListener.setForceMessageIdAsCorrelationId(true);
}
Map jmsListenerInfo = new HashMap();
jmsListenerInfo.put("jmsListener", pullingJmsListener);
queues.put(queueName, jmsListenerInfo);
debugMessage("Opened jms listener '" + queueName + "'", writers);
if (jmsCleanUp(queueName, pullingJmsListener, writers)) {
errorMessage("Found one or more old messages on queue '" + queueName + "', you might want to run your tests with a higher 'wait before clean up' value", writers);
}
}
}
debugMessage("Initialize jdbc fixed query senders", writers);
iterator = jdbcFixedQuerySenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
String datasourceName = (String) properties.get(name + ".datasourceName");
String username = (String) properties.get(name + ".username");
String password = (String) properties.get(name + ".password");
boolean allFound = false;
String preDelete = "";
int preDeleteIndex = 1;
String queryType = (String) properties.get(name + ".queryType");
String getBlobSmartString = (String) properties.get(name + ".getBlobSmart");
boolean getBlobSmart = false;
if (getBlobSmartString != null) {
getBlobSmart = Boolean.valueOf(getBlobSmartString).booleanValue();
}
if (datasourceName == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find datasourceName property for " + name, writers);
} else {
Map querySendersInfo = new HashMap();
while (!allFound && queues != null) {
preDelete = (String) properties.get(name + ".preDel" + preDeleteIndex);
if (preDelete != null) {
FixedQuerySender deleteQuerySender = (FixedQuerySender) ibisContext.createBeanAutowireByName(FixedQuerySender.class);
deleteQuerySender.setName("Test Tool pre delete query sender");
deleteQuerySender.setDatasourceName(AppConstants.getInstance().getResolvedProperty("jndiContextPrefix") + datasourceName);
deleteQuerySender.setQueryType("delete");
deleteQuerySender.setQuery("delete from " + preDelete);
try {
deleteQuerySender.configure();
deleteQuerySender.open();
deleteQuerySender.sendMessage(TESTTOOL_CORRELATIONID, TESTTOOL_DUMMY_MESSAGE);
deleteQuerySender.close();
} catch (ConfigurationException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
} catch (TimeOutException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Time out on execute pre delete query for '" + name + "': " + e.getMessage(), e, writers);
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not execute pre delete query for '" + name + "': " + e.getMessage(), e, writers);
}
preDeleteIndex++;
} else {
allFound = true;
}
}
if (queues != null) {
String prePostQuery = (String) properties.get(name + ".prePostQuery");
if (prePostQuery != null) {
FixedQuerySender prePostFixedQuerySender = (FixedQuerySender) ibisContext.createBeanAutowireByName(FixedQuerySender.class);
prePostFixedQuerySender.setName("Test Tool query sender");
prePostFixedQuerySender.setDatasourceName(AppConstants.getInstance().getResolvedProperty("jndiContextPrefix") + datasourceName);
// prePostFixedQuerySender.setUsername(username);
// prePostFixedQuerySender.setPassword(password);
prePostFixedQuerySender.setQueryType("select");
prePostFixedQuerySender.setQuery(prePostQuery);
try {
prePostFixedQuerySender.configure();
} catch (ConfigurationException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
try {
prePostFixedQuerySender.open();
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open (pre/post) '" + name + "': " + e.getMessage(), e, writers);
}
}
if (queues != null) {
try {
String result = prePostFixedQuerySender.sendMessage(TESTTOOL_CORRELATIONID, TESTTOOL_DUMMY_MESSAGE);
querySendersInfo.put("prePostQueryFixedQuerySender", prePostFixedQuerySender);
querySendersInfo.put("prePostQueryResult", result);
} catch (TimeOutException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Time out on execute query for '" + name + "': " + e.getMessage(), e, writers);
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not execute query for '" + name + "': " + e.getMessage(), e, writers);
}
}
}
}
if (queues != null) {
String readQuery = (String) properties.get(name + ".readQuery");
if (readQuery != null) {
FixedQuerySender readQueryFixedQuerySender = (FixedQuerySender) ibisContext.createBeanAutowireByName(FixedQuerySender.class);
readQueryFixedQuerySender.setName("Test Tool query sender");
readQueryFixedQuerySender.setDatasourceName(AppConstants.getInstance().getResolvedProperty("jndiContextPrefix") + datasourceName);
if ((queryType != null) && (!queryType.equals(""))) {
readQueryFixedQuerySender.setQueryType(queryType);
} else {
readQueryFixedQuerySender.setQueryType("select");
}
readQueryFixedQuerySender.setQuery(readQuery);
readQueryFixedQuerySender.setBlobSmartGet(getBlobSmart);
try {
readQueryFixedQuerySender.configure();
} catch (ConfigurationException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
try {
readQueryFixedQuerySender.open();
querySendersInfo.put("readQueryQueryFixedQuerySender", readQueryFixedQuerySender);
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open '" + name + "': " + e.getMessage(), e, writers);
}
}
}
}
if (queues != null) {
String waitBeforeRead = (String) properties.get(name + ".waitBeforeRead");
if (waitBeforeRead != null) {
try {
querySendersInfo.put("readQueryWaitBeforeRead", new Integer(waitBeforeRead));
} catch (NumberFormatException e) {
errorMessage("Value of '" + name + ".waitBeforeRead' not a number: " + e.getMessage(), e, writers);
}
}
queues.put(name, querySendersInfo);
debugMessage("Opened jdbc connection '" + name + "'", writers);
}
}
}
debugMessage("Initialize ibis web service senders", writers);
iterator = ibisWebServiceSenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
String ibisHost = (String) properties.get(name + ".ibisHost");
String ibisInstance = (String) properties.get(name + ".ibisInstance");
String serviceName = (String) properties.get(name + ".serviceName");
Boolean convertExceptionToMessage = new Boolean((String) properties.get(name + ".convertExceptionToMessage"));
if (ibisHost == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find ibisHost property for " + name, writers);
} else if (ibisInstance == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find ibisInstance property for " + name, writers);
} else if (serviceName == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find serviceName property for " + name, writers);
} else {
IbisWebServiceSender ibisWebServiceSender = new IbisWebServiceSender();
ibisWebServiceSender.setName("Test Tool IbisWebServiceSender");
ibisWebServiceSender.setIbisHost(ibisHost);
ibisWebServiceSender.setIbisInstance(ibisInstance);
ibisWebServiceSender.setServiceName(serviceName);
try {
ibisWebServiceSender.configure();
} catch (ConfigurationException e) {
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
closeQueues(queues, properties, writers);
queues = null;
}
try {
ibisWebServiceSender.open();
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
Map ibisWebServiceSenderInfo = new HashMap();
ibisWebServiceSenderInfo.put("ibisWebServiceSender", ibisWebServiceSender);
ibisWebServiceSenderInfo.put("convertExceptionToMessage", convertExceptionToMessage);
queues.put(name, ibisWebServiceSenderInfo);
debugMessage("Opened ibis web service sender '" + name + "'", writers);
}
}
}
debugMessage("Initialize web service senders", writers);
iterator = webServiceSenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
Boolean convertExceptionToMessage = new Boolean((String) properties.get(name + ".convertExceptionToMessage"));
String url = (String) properties.get(name + ".url");
String userName = (String) properties.get(name + ".userName");
String password = (String) properties.get(name + ".password");
String soap = (String) properties.get(name + ".soap");
String allowSelfSignedCertificates = (String) properties.get(name + ".allowSelfSignedCertificates");
if (url == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find url property for " + name, writers);
} else {
WebServiceSender webServiceSender = new WebServiceSender();
webServiceSender.setName("Test Tool WebServiceSender");
webServiceSender.setUrl(url);
webServiceSender.setUserName(userName);
webServiceSender.setPassword(password);
if (soap != null) {
webServiceSender.setSoap(new Boolean(soap));
}
if (allowSelfSignedCertificates != null) {
webServiceSender.setAllowSelfSignedCertificates(new Boolean(allowSelfSignedCertificates));
}
String serviceNamespaceURI = (String) properties.get(name + ".serviceNamespaceURI");
if (serviceNamespaceURI != null) {
webServiceSender.setServiceNamespaceURI(serviceNamespaceURI);
}
String serviceNamespace = (String) properties.get(name + ".serviceNamespace");
if (serviceNamespace != null) {
webServiceSender.setServiceNamespace(serviceNamespace);
}
try {
webServiceSender.configure();
} catch (ConfigurationException e) {
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
closeQueues(queues, properties, writers);
queues = null;
}
if (queues != null) {
try {
webServiceSender.open();
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
Map webServiceSenderInfo = new HashMap();
webServiceSenderInfo.put("webServiceSender", webServiceSender);
webServiceSenderInfo.put("convertExceptionToMessage", convertExceptionToMessage);
queues.put(name, webServiceSenderInfo);
debugMessage("Opened web service sender '" + name + "'", writers);
}
}
}
}
debugMessage("Initialize web service listeners", writers);
iterator = webServiceListeners.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
String serviceNamespaceURI = (String) properties.get(name + ".serviceNamespaceURI");
if (serviceNamespaceURI == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find property '" + name + ".serviceNamespaceURI'", writers);
} else {
ListenerMessageHandler listenerMessageHandler = new ListenerMessageHandler();
try {
long requestTimeOut = Long.parseLong((String) properties.get(name + ".requestTimeOut"));
listenerMessageHandler.setRequestTimeOut(requestTimeOut);
debugMessage("Request time out set to '" + requestTimeOut + "'", writers);
} catch (Exception e) {
}
try {
long responseTimeOut = Long.parseLong((String) properties.get(name + ".responseTimeOut"));
listenerMessageHandler.setResponseTimeOut(responseTimeOut);
debugMessage("Response time out set to '" + responseTimeOut + "'", writers);
} catch (Exception e) {
}
WebServiceListener webServiceListener = new WebServiceListener();
webServiceListener.setName("Test Tool WebServiceListener");
webServiceListener.setServiceNamespaceURI(serviceNamespaceURI);
webServiceListener.setHandler(listenerMessageHandler);
try {
webServiceListener.open();
} catch (ListenerException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open web service listener '" + name + "': " + e.getMessage(), e, writers);
}
Map webServiceListenerInfo = new HashMap();
webServiceListenerInfo.put("webServiceListener", webServiceListener);
webServiceListenerInfo.put("listenerMessageHandler", listenerMessageHandler);
queues.put(name, webServiceListenerInfo);
ServiceDispatcher serviceDispatcher = ServiceDispatcher.getInstance();
try {
serviceDispatcher.registerServiceClient(serviceNamespaceURI, webServiceListener);
debugMessage("Opened web service listener '" + name + "'", writers);
} catch (ListenerException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open web service listener '" + name + "': " + e.getMessage(), e, writers);
}
}
}
debugMessage("Initialize http senders", writers);
iterator = httpSenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
Boolean convertExceptionToMessage = new Boolean((String) properties.get(name + ".convertExceptionToMessage"));
String url = (String) properties.get(name + ".url");
String userName = (String) properties.get(name + ".userName");
String password = (String) properties.get(name + ".password");
String headerParams = (String) properties.get(name + ".headersParams");
String xhtmlString = (String) properties.get(name + ".xhtml");
String methodtype = (String) properties.get(name + ".methodType");
String paramsInUrlString = (String) properties.get(name + ".paramsInUrl");
String inputMessageParam = (String) properties.get(name + ".inputMessageParam");
String multipartString = (String) properties.get(name + ".multipart");
String styleSheetName = (String) properties.get(name + ".styleSheetName");
if (url == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find url property for " + name, writers);
} else {
HttpSender httpSender = null;
ParameterResolutionContext parameterResolutionContext = null;
ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
try {
// Use directoryClassLoader to make it possible to specify
// styleSheetName relative to the scenarioDirectory.
DirectoryClassLoader directoryClassLoader = new DirectoryClassLoader(scenarioDirectory);
Thread.currentThread().setContextClassLoader(directoryClassLoader);
httpSender = new HttpSender();
httpSender.setName("Test Tool HttpSender");
httpSender.setUrl(url);
httpSender.setUserName(userName);
httpSender.setPassword(password);
httpSender.setHeadersParams(headerParams);
if (StringUtils.isNotEmpty(xhtmlString)) {
httpSender.setXhtml(Boolean.valueOf(xhtmlString).booleanValue());
}
if (StringUtils.isNotEmpty(methodtype)) {
httpSender.setMethodType(methodtype);
}
if (StringUtils.isNotEmpty(paramsInUrlString)) {
httpSender.setParamsInUrl(Boolean.valueOf(paramsInUrlString).booleanValue());
}
if (StringUtils.isNotEmpty(inputMessageParam)) {
httpSender.setInputMessageParam(inputMessageParam);
}
if (StringUtils.isNotEmpty(multipartString)) {
httpSender.setMultipart(Boolean.valueOf(multipartString).booleanValue());
}
if (StringUtils.isNotEmpty(styleSheetName)) {
httpSender.setStyleSheetName(styleSheetName);
}
parameterResolutionContext = new ParameterResolutionContext();
parameterResolutionContext.setSession(new PipeLineSessionBase());
Map paramPropertiesMap = createParametersMapFromParamProperties(properties, name, writers, true, parameterResolutionContext);
Iterator parameterNameIterator = paramPropertiesMap.keySet().iterator();
while (parameterNameIterator.hasNext()) {
String parameterName = (String) parameterNameIterator.next();
Parameter parameter = (Parameter) paramPropertiesMap.get(parameterName);
httpSender.addParameter(parameter);
}
httpSender.configure();
} catch (ConfigurationException e) {
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
closeQueues(queues, properties, writers);
queues = null;
} finally {
if (originalClassLoader != null) {
Thread.currentThread().setContextClassLoader(originalClassLoader);
}
}
if (queues != null) {
try {
httpSender.open();
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
Map httpSenderInfo = new HashMap();
httpSenderInfo.put("httpSender", httpSender);
httpSenderInfo.put("parameterResolutionContext", parameterResolutionContext);
httpSenderInfo.put("convertExceptionToMessage", convertExceptionToMessage);
queues.put(name, httpSenderInfo);
debugMessage("Opened http sender '" + name + "'", writers);
}
}
}
}
debugMessage("Initialize ibis java senders", writers);
iterator = ibisJavaSenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
String serviceName = (String) properties.get(name + ".serviceName");
Boolean convertExceptionToMessage = new Boolean((String) properties.get(name + ".convertExceptionToMessage"));
if (serviceName == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find serviceName property for " + name, writers);
} else {
IbisJavaSender ibisJavaSender = new IbisJavaSender();
ibisJavaSender.setName("Test Tool IbisJavaSender");
ibisJavaSender.setServiceName(serviceName);
ParameterResolutionContext parameterResolutionContext = new ParameterResolutionContext();
parameterResolutionContext.setSession(new PipeLineSessionBase());
Map paramPropertiesMap = createParametersMapFromParamProperties(properties, name, writers, true, parameterResolutionContext);
Iterator parameterNameIterator = paramPropertiesMap.keySet().iterator();
while (parameterNameIterator.hasNext()) {
String parameterName = (String) parameterNameIterator.next();
Parameter parameter = (Parameter) paramPropertiesMap.get(parameterName);
ibisJavaSender.addParameter(parameter);
}
try {
ibisJavaSender.configure();
} catch (ConfigurationException e) {
errorMessage("Could not configure '" + name + "': " + e.getMessage(), e, writers);
closeQueues(queues, properties, writers);
queues = null;
}
if (queues != null) {
try {
ibisJavaSender.open();
} catch (SenderException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open '" + name + "': " + e.getMessage(), e, writers);
}
if (queues != null) {
Map ibisJavaSenderInfo = new HashMap();
ibisJavaSenderInfo.put("ibisJavaSender", ibisJavaSender);
ibisJavaSenderInfo.put("parameterResolutionContext", parameterResolutionContext);
ibisJavaSenderInfo.put("convertExceptionToMessage", convertExceptionToMessage);
queues.put(name, ibisJavaSenderInfo);
debugMessage("Opened ibis java sender '" + name + "'", writers);
}
}
}
}
debugMessage("Initialize delay senders", writers);
iterator = delaySenders.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
Boolean convertExceptionToMessage = new Boolean((String) properties.get(name + ".convertExceptionToMessage"));
String delayTime = (String) properties.get(name + ".delayTime");
DelaySender delaySender = new DelaySender();
if (delayTime != null) {
delaySender.setDelayTime(Long.parseLong(delayTime));
}
delaySender.setName("Test Tool DelaySender");
Map delaySenderInfo = new HashMap();
delaySenderInfo.put("delaySender", delaySender);
delaySenderInfo.put("convertExceptionToMessage", convertExceptionToMessage);
queues.put(name, delaySenderInfo);
debugMessage("Opened delay sender '" + name + "'", writers);
}
debugMessage("Initialize java listeners", writers);
iterator = javaListeners.iterator();
while (queues != null && iterator.hasNext()) {
String name = (String) iterator.next();
String serviceName = (String) properties.get(name + ".serviceName");
if (serviceName == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find property '" + name + ".serviceName'", writers);
} else {
ListenerMessageHandler listenerMessageHandler = new ListenerMessageHandler();
try {
long requestTimeOut = Long.parseLong((String) properties.get(name + ".requestTimeOut"));
listenerMessageHandler.setRequestTimeOut(requestTimeOut);
debugMessage("Request time out set to '" + requestTimeOut + "'", writers);
} catch (Exception e) {
}
try {
long responseTimeOut = Long.parseLong((String) properties.get(name + ".responseTimeOut"));
listenerMessageHandler.setResponseTimeOut(responseTimeOut);
debugMessage("Response time out set to '" + responseTimeOut + "'", writers);
} catch (Exception e) {
}
JavaListener javaListener = new JavaListener();
javaListener.setName("Test Tool JavaListener");
javaListener.setServiceName(serviceName);
javaListener.setHandler(listenerMessageHandler);
try {
javaListener.open();
Map javaListenerInfo = new HashMap();
javaListenerInfo.put("javaListener", javaListener);
javaListenerInfo.put("listenerMessageHandler", listenerMessageHandler);
queues.put(name, javaListenerInfo);
debugMessage("Opened java listener '" + name + "'", writers);
} catch (ListenerException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not open java listener '" + name + "': " + e.getMessage(), e, writers);
}
}
}
debugMessage("Initialize file senders", writers);
iterator = fileSenders.iterator();
while (queues != null && iterator.hasNext()) {
String queueName = (String) iterator.next();
String filename = (String) properties.get(queueName + ".filename");
if (filename == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find filename property for " + queueName, writers);
} else {
FileSender fileSender = new FileSender();
String filenameAbsolutePath = (String) properties.get(queueName + ".filename.absolutepath");
fileSender.setFilename(filenameAbsolutePath);
String encoding = (String) properties.get(queueName + ".encoding");
if (encoding != null) {
fileSender.setEncoding(encoding);
debugMessage("Encoding set to '" + encoding + "'", writers);
}
String deletePathString = (String) properties.get(queueName + ".deletePath");
if (deletePathString != null) {
boolean deletePath = Boolean.valueOf(deletePathString).booleanValue();
fileSender.setDeletePath(deletePath);
debugMessage("Delete path set to '" + deletePath + "'", writers);
}
String createPathString = (String) properties.get(queueName + ".createPath");
if (createPathString != null) {
boolean createPath = Boolean.valueOf(createPathString).booleanValue();
fileSender.setCreatePath(createPath);
debugMessage("Create path set to '" + createPath + "'", writers);
}
try {
String checkDeleteString = (String) properties.get(queueName + ".checkDelete");
if (checkDeleteString != null) {
boolean checkDelete = Boolean.valueOf(checkDeleteString).booleanValue();
fileSender.setCheckDelete(checkDelete);
debugMessage("Check delete set to '" + checkDelete + "'", writers);
}
} catch (Exception e) {
}
try {
String runAntString = (String) properties.get(queueName + ".runAnt");
if (runAntString != null) {
boolean runAnt = Boolean.valueOf(runAntString).booleanValue();
fileSender.setRunAnt(runAnt);
debugMessage("Run ant set to '" + runAnt + "'", writers);
}
} catch (Exception e) {
}
try {
long timeOut = Long.parseLong((String) properties.get(queueName + ".timeOut"));
fileSender.setTimeOut(timeOut);
debugMessage("Time out set to '" + timeOut + "'", writers);
} catch (Exception e) {
}
try {
long interval = Long.parseLong((String) properties.get(queueName + ".interval"));
fileSender.setInterval(interval);
debugMessage("Interval set to '" + interval + "'", writers);
} catch (Exception e) {
}
try {
String overwriteString = (String) properties.get(queueName + ".overwrite");
if (overwriteString != null) {
debugMessage("OverwriteString = " + overwriteString, writers);
boolean overwrite = Boolean.valueOf(overwriteString).booleanValue();
fileSender.setOverwrite(overwrite);
debugMessage("Overwrite set to '" + overwrite + "'", writers);
}
} catch (Exception e) {
}
Map fileSenderInfo = new HashMap();
fileSenderInfo.put("fileSender", fileSender);
queues.put(queueName, fileSenderInfo);
debugMessage("Opened file sender '" + queueName + "'", writers);
}
}
debugMessage("Initialize file listeners", writers);
iterator = fileListeners.iterator();
while (queues != null && iterator.hasNext()) {
String queueName = (String) iterator.next();
String filename = (String) properties.get(queueName + ".filename");
String filename2 = (String) properties.get(queueName + ".filename2");
String directory = null;
String wildcard = null;
if (filename == null) {
directory = (String) properties.get(queueName + ".directory");
wildcard = (String) properties.get(queueName + ".wildcard");
}
if (filename == null && directory == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find filename or directory property for " + queueName, writers);
} else if (directory != null && wildcard == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find wildcard property for " + queueName, writers);
} else {
FileListener fileListener = new FileListener();
if (filename == null) {
String directoryAbsolutePath = (String) properties.get(queueName + ".directory.absolutepath");
;
fileListener.setDirectory(directoryAbsolutePath);
fileListener.setWildcard(wildcard);
} else {
String filenameAbsolutePath = (String) properties.get(queueName + ".filename.absolutepath");
;
fileListener.setFilename(filenameAbsolutePath);
}
try {
long waitBeforeRead = Long.parseLong((String) properties.get(queueName + ".waitBeforeRead"));
fileListener.setWaitBeforeRead(waitBeforeRead);
debugMessage("Wait before read set to '" + waitBeforeRead + "'", writers);
} catch (Exception e) {
}
try {
long timeOut = Long.parseLong((String) properties.get(queueName + ".timeOut"));
fileListener.setTimeOut(timeOut);
debugMessage("Time out set to '" + timeOut + "'", writers);
} catch (Exception e) {
}
try {
long interval = Long.parseLong((String) properties.get(queueName + ".interval"));
fileListener.setInterval(interval);
debugMessage("Interval set to '" + interval + "'", writers);
} catch (Exception e) {
}
if (filename2 != null) {
fileListener.setFilename2(filename2);
}
Map fileListenerInfo = new HashMap();
fileListenerInfo.put("fileListener", fileListener);
queues.put(queueName, fileListenerInfo);
debugMessage("Opened file listener '" + queueName + "'", writers);
if (fileListenerCleanUp(queueName, fileListener, writers)) {
errorMessage("Found old messages on '" + queueName + "'", writers);
}
}
}
debugMessage("Initialize xslt provider listeners", writers);
iterator = xsltProviderListeners.iterator();
while (queues != null && iterator.hasNext()) {
String queueName = (String) iterator.next();
String filename = (String) properties.get(queueName + ".filename");
if (filename == null) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not find filename property for " + queueName, writers);
} else {
Boolean fromClasspath = new Boolean((String) properties.get(queueName + ".fromClasspath"));
if (!fromClasspath) {
filename = (String) properties.get(queueName + ".filename.absolutepath");
}
XsltProviderListener xsltProviderListener = new XsltProviderListener();
xsltProviderListener.setFromClasspath(fromClasspath);
xsltProviderListener.setFilename(filename);
String xslt2String = (String) properties.get(queueName + ".xslt2");
if (xslt2String != null) {
try {
boolean xslt2 = Boolean.valueOf(xslt2String).booleanValue();
xsltProviderListener.setXslt2(xslt2);
debugMessage("Xslt2 set to '" + xslt2 + "'", writers);
} catch (Exception e) {
}
}
String namespaceAwareString = (String) properties.get(queueName + ".namespaceAware");
if (namespaceAwareString != null) {
try {
boolean namespaceAware = Boolean.valueOf(namespaceAwareString).booleanValue();
xsltProviderListener.setNamespaceAware(namespaceAware);
debugMessage("Namespace aware set to '" + namespaceAware + "'", writers);
} catch (Exception e) {
}
}
try {
xsltProviderListener.init();
Map xsltProviderListenerInfo = new HashMap();
xsltProviderListenerInfo.put("xsltProviderListener", xsltProviderListener);
queues.put(queueName, xsltProviderListenerInfo);
debugMessage("Opened xslt provider listener '" + queueName + "'", writers);
} catch (ListenerException e) {
closeQueues(queues, properties, writers);
queues = null;
errorMessage("Could not create xslt provider listener for '" + queueName + "': " + e.getMessage(), e, writers);
}
}
}
return queues;
}
use of nl.nn.adapterframework.parameters.Parameter in project iaf by ibissource.
the class FileUtils method getFilename.
/**
* Construct a filename from a pattern and session variables.
*/
public static String getFilename(ParameterList definedParameters, IPipeLineSession session, String originalFilename, String filenamePattern) throws ParameterException {
// no pattern defined, outputname = inputname
if (StringUtils.isEmpty(filenamePattern)) {
return originalFilename;
}
// obtain filename
int ndx = originalFilename.lastIndexOf('.');
String name = originalFilename;
String extension = "";
if (ndx > 0) {
name = originalFilename.substring(0, ndx);
extension = originalFilename.substring(ndx + 1);
}
// construct the parameterlist
ParameterList pl = new ParameterList();
try {
if (definedParameters != null)
pl.addAll(definedParameters);
Parameter p = new Parameter();
p.setName("file");
p.setDefaultValue(name);
p.configure();
pl.add(p);
p = new Parameter();
p.setName("ext");
p.setDefaultValue(extension);
p.configure();
pl.add(p);
p = new Parameter();
p.setName("__filename");
p.setPattern(filenamePattern);
p.configure();
pl.add(p);
} catch (ConfigurationException e) {
throw new ParameterException(e);
}
// resolve the parameters
ParameterResolutionContext prc = new ParameterResolutionContext((String) null, session);
ParameterValueList pvl = prc.getValues(pl);
String filename = pvl.getParameterValue("__filename").getValue().toString();
return filename;
}
Aggregations