Search in sources :

Example 1 with JmsSender

use of nl.nn.adapterframework.jms.JmsSender in project iaf by ibissource.

the class SendJmsMessage method jmsBuilder.

private JmsSender jmsBuilder(String realm, String destination, boolean persistent, String type) {
    JmsSender qms = new JmsSender();
    qms.setName("SendJmsMessageAction");
    qms.setJmsRealm(realm);
    qms.setDestinationName(destination);
    qms.setPersistent(persistent);
    qms.setDestinationType(type);
    return qms;
}
Also used : JmsSender(nl.nn.adapterframework.jms.JmsSender)

Example 2 with JmsSender

use of nl.nn.adapterframework.jms.JmsSender in project iaf by ibissource.

the class SendJmsMessage method putJmsMessage.

@POST
@RolesAllowed({ "IbisDataAdmin", "IbisAdmin", "IbisTester" })
@Path("jms/message")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response putJmsMessage(MultipartFormDataInput input) throws ApiException {
    initBase(servletConfig);
    String jmsRealm = null, destinationName = null, destinationType = null, replyTo = null, message = null, fileName = null;
    InputStream file = null;
    boolean persistent = false;
    Map<String, List<InputPart>> inputDataMap = input.getFormDataMap();
    if (inputDataMap == null) {
        throw new ApiException("Missing post parameters");
    }
    try {
        if (inputDataMap.get("realm") != null)
            jmsRealm = inputDataMap.get("realm").get(0).getBodyAsString();
        else
            throw new ApiException("JMS realm not defined", 400);
        if (inputDataMap.get("destination") != null)
            destinationName = inputDataMap.get("destination").get(0).getBodyAsString();
        else
            throw new ApiException("Destination name not defined", 400);
        if (inputDataMap.get("type") != null)
            destinationType = inputDataMap.get("type").get(0).getBodyAsString();
        else
            throw new ApiException("Destination type not defined", 400);
        if (inputDataMap.get("replyTo") != null)
            replyTo = inputDataMap.get("replyTo").get(0).getBodyAsString();
        else
            throw new ApiException("ReplyTo not defined", 400);
        if (inputDataMap.get("message") != null)
            message = inputDataMap.get("message").get(0).getBodyAsString();
        if (inputDataMap.get("persistent") != null)
            persistent = inputDataMap.get("persistent").get(0).getBody(boolean.class, null);
        if (inputDataMap.get("file") != null)
            file = inputDataMap.get("file").get(0).getBody(InputStream.class, null);
    } catch (IOException e) {
        throw new ApiException("Failed to parse one or more parameters!");
    }
    try {
        if (file != null) {
            MultivaluedMap<String, String> headers = inputDataMap.get("file").get(0).getHeaders();
            String[] contentDispositionHeader = headers.getFirst("Content-Disposition").split(";");
            for (String name : contentDispositionHeader) {
                if ((name.trim().startsWith("filename"))) {
                    String[] tmp = name.split("=");
                    fileName = tmp[1].trim().replaceAll("\"", "");
                }
            }
            if (StringUtils.endsWithIgnoreCase(fileName, ".zip")) {
                processZipFile(file, jmsBuilder(jmsRealm, destinationName, persistent, destinationType), replyTo);
                message = null;
            } else {
                message = XmlUtils.readXml(Misc.streamToBytes(file), Misc.DEFAULT_INPUT_STREAM_ENCODING, false);
            }
        } else {
            message = new String(message.getBytes(), Misc.DEFAULT_INPUT_STREAM_ENCODING);
        }
    } catch (Exception e) {
        throw new ApiException("Failed to read message: " + e.getMessage());
    }
    if (message != null && message.length() > 0) {
        JmsSender qms = jmsBuilder(jmsRealm, destinationName, persistent, destinationType);
        if ((replyTo != null) && (replyTo.length() > 0))
            qms.setReplyToName(replyTo);
        processMessage(qms, "testmsg_" + Misc.createUUID(), message);
        return Response.status(Response.Status.OK).build();
    } else {
        return Response.status(Response.Status.BAD_REQUEST).build();
    }
}
Also used : ZipInputStream(java.util.zip.ZipInputStream) InputStream(java.io.InputStream) List(java.util.List) IOException(java.io.IOException) JmsSender(nl.nn.adapterframework.jms.JmsSender) IOException(java.io.IOException) Path(javax.ws.rs.Path) RolesAllowed(javax.annotation.security.RolesAllowed) POST(javax.ws.rs.POST) Produces(javax.ws.rs.Produces) Consumes(javax.ws.rs.Consumes)

Example 3 with JmsSender

use of nl.nn.adapterframework.jms.JmsSender in project iaf by ibissource.

the class SendJmsMessageExecute method executeSub.

public ActionForward executeSub(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    // Initialize action
    initAction(request);
    // -------------------------------
    if (isCancelled(request)) {
        log.debug("sendJmsMessage was cancelled");
        removeFormBean(mapping, request);
        return (mapping.findForward("success"));
    }
    // Retrieve form content
    // ---------------------
    DynaActionForm sendJmsMessageForm = (DynaActionForm) form;
    String form_jmsRealm = (String) sendJmsMessageForm.get("jmsRealm");
    String form_destinationName = (String) sendJmsMessageForm.get("destinationName");
    String form_destinationType = (String) sendJmsMessageForm.get("destinationType");
    boolean form_persistent = false;
    if (null != sendJmsMessageForm.get("persistent")) {
        form_persistent = ((Boolean) sendJmsMessageForm.get("persistent")).booleanValue();
    }
    String form_message = (String) sendJmsMessageForm.get("message");
    FormFile form_file = (FormFile) sendJmsMessageForm.get("file");
    String form_replyToName = (String) sendJmsMessageForm.get("replyToName");
    // if upload is choosen, it prevails over the message
    if ((form_file != null) && (form_file.getFileSize() > 0)) {
        log.debug("Upload of file [" + form_file.getFileName() + "] ContentType[" + form_file.getContentType() + "]");
        if (FileUtils.extensionEqualsIgnoreCase(form_file.getFileName(), "zip")) {
            ZipInputStream archive = new ZipInputStream(new ByteArrayInputStream(form_file.getFileData()));
            for (ZipEntry entry = archive.getNextEntry(); entry != null; entry = archive.getNextEntry()) {
                String name = entry.getName();
                int size = (int) entry.getSize();
                if (size > 0) {
                    byte[] b = new byte[size];
                    int rb = 0;
                    int chunk = 0;
                    while (((int) size - rb) > 0) {
                        chunk = archive.read(b, rb, (int) size - rb);
                        if (chunk == -1) {
                            break;
                        }
                        rb += chunk;
                    }
                    String currentMessage = XmlUtils.readXml(b, 0, rb, request.getCharacterEncoding(), false);
                    // initiate MessageSender
                    JmsSender qms = new JmsSender();
                    qms.setName("SendJmsMessageAction");
                    qms.setJmsRealm(form_jmsRealm);
                    qms.setDestinationName(form_destinationName);
                    qms.setPersistent(form_persistent);
                    qms.setDestinationType(form_destinationType);
                    if ((form_replyToName != null) && (form_replyToName.length() > 0))
                        qms.setReplyToName(form_replyToName);
                    processMessage(qms, name + "_" + Misc.createSimpleUUID(), currentMessage);
                }
                archive.closeEntry();
            }
            archive.close();
            form_message = null;
        } else {
            form_message = XmlUtils.readXml(form_file.getFileData(), request.getCharacterEncoding(), false);
        }
    } else {
        form_message = new String(form_message.getBytes(), Misc.DEFAULT_INPUT_STREAM_ENCODING);
    }
    if (form_message != null && form_message.length() > 0) {
        // initiate MessageSender
        JmsSender qms = new JmsSender();
        qms.setName("SendJmsMessageAction");
        qms.setJmsRealm(form_jmsRealm);
        qms.setDestinationName(form_destinationName);
        qms.setPersistent(form_persistent);
        qms.setDestinationType(form_destinationType);
        if ((form_replyToName != null) && (form_replyToName.length() > 0))
            qms.setReplyToName(form_replyToName);
        processMessage(qms, "testmsg_" + Misc.createUUID(), form_message);
    }
    StoreFormData(sendJmsMessageForm);
    // Report any errors we have discovered back to the original form
    if (!errors.isEmpty()) {
        saveErrors(request, errors);
        return (new ActionForward(mapping.getInput()));
    }
    // Successfull: store cookie
    String cookieValue = "";
    cookieValue += "jmsRealm=\"" + form_jmsRealm + "\"";
    // separator
    cookieValue += " ";
    cookieValue += "destinationName=\"" + form_destinationName + "\"";
    // separator
    cookieValue += " ";
    cookieValue += "destinationType=\"" + form_destinationType + "\"";
    Cookie sendJmsCookie = new Cookie(AppConstants.getInstance().getProperty("WEB_JMSCOOKIE_NAME"), cookieValue);
    sendJmsCookie.setMaxAge(Integer.MAX_VALUE);
    log.debug("Store cookie for " + request.getServletPath() + " cookieName[" + AppConstants.getInstance().getProperty("WEB_JMSCOOKIE_NAME") + "] " + " cookieValue[" + new StringTagger(cookieValue).toString() + "]");
    try {
        response.addCookie(sendJmsCookie);
    } catch (Throwable e) {
        log.warn("unable to add cookie to request. cookie value [" + sendJmsCookie.getValue() + "]");
    }
    // Forward control to the specified success URI
    log.debug("forward to success");
    return (mapping.findForward("success"));
}
Also used : Cookie(javax.servlet.http.Cookie) DynaActionForm(org.apache.struts.action.DynaActionForm) ZipEntry(java.util.zip.ZipEntry) StringTagger(nl.nn.adapterframework.util.StringTagger) ActionForward(org.apache.struts.action.ActionForward) FormFile(org.apache.struts.upload.FormFile) ZipInputStream(java.util.zip.ZipInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) JmsSender(nl.nn.adapterframework.jms.JmsSender)

Example 4 with JmsSender

use of nl.nn.adapterframework.jms.JmsSender in project iaf by ibissource.

the class TestTool method executeJmsSenderWrite.

private static int executeJmsSenderWrite(String stepDisplayName, Map queues, Map writers, String queueName, String fileContent) {
    int result = RESULT_ERROR;
    Map jmsSenderInfo = (Map) queues.get(queueName);
    JmsSender jmsSender = (JmsSender) jmsSenderInfo.get("jmsSender");
    try {
        String correlationId = null;
        String useCorrelationIdFrom = (String) jmsSenderInfo.get("useCorrelationIdFrom");
        if (useCorrelationIdFrom != null) {
            Map listenerInfo = (Map) queues.get(useCorrelationIdFrom);
            if (listenerInfo == null) {
                errorMessage("Could not find listener '" + useCorrelationIdFrom + "' to use correlation id from", writers);
            } else {
                correlationId = (String) listenerInfo.get("correlationId");
                if (correlationId == null) {
                    errorMessage("Could not find correlation id from listener '" + useCorrelationIdFrom + "'", writers);
                }
            }
        }
        if (correlationId == null) {
            correlationId = (String) jmsSenderInfo.get("jmsCorrelationId");
        }
        if (correlationId == null) {
            correlationId = TESTTOOL_CORRELATIONID;
        }
        jmsSender.sendMessage(correlationId, fileContent);
        debugPipelineMessage(stepDisplayName, "Successfully written to '" + queueName + "':", fileContent, writers);
        result = RESULT_OK;
    } catch (TimeOutException e) {
        errorMessage("Time out sending jms message to '" + queueName + "': " + e.getMessage(), e, writers);
    } catch (SenderException e) {
        errorMessage("Could not send jms message to '" + queueName + "': " + e.getMessage(), e, writers);
    }
    return result;
}
Also used : TimeOutException(nl.nn.adapterframework.core.TimeOutException) JmsSender(nl.nn.adapterframework.jms.JmsSender) SenderException(nl.nn.adapterframework.core.SenderException) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap)

Example 5 with JmsSender

use of nl.nn.adapterframework.jms.JmsSender 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;
}
Also used : PullingJmsListener(nl.nn.adapterframework.jms.PullingJmsListener) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ArrayList(java.util.ArrayList) ListenerException(nl.nn.adapterframework.core.ListenerException) ConfigurationException(nl.nn.adapterframework.configuration.ConfigurationException) Iterator(java.util.Iterator) DelaySender(nl.nn.adapterframework.senders.DelaySender) DirectoryClassLoader(nl.nn.adapterframework.configuration.classloaders.DirectoryClassLoader) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) ServiceDispatcher(nl.nn.adapterframework.receivers.ServiceDispatcher) IbisWebServiceSender(nl.nn.adapterframework.http.IbisWebServiceSender) WebServiceSender(nl.nn.adapterframework.http.WebServiceSender) ParameterResolutionContext(nl.nn.adapterframework.parameters.ParameterResolutionContext) DirectoryClassLoader(nl.nn.adapterframework.configuration.classloaders.DirectoryClassLoader) IbisWebServiceSender(nl.nn.adapterframework.http.IbisWebServiceSender) WebServiceListener(nl.nn.adapterframework.http.WebServiceListener) HttpSender(nl.nn.adapterframework.http.HttpSender) ParseException(java.text.ParseException) DomBuilderException(nl.nn.adapterframework.util.DomBuilderException) FileNotFoundException(java.io.FileNotFoundException) SenderException(nl.nn.adapterframework.core.SenderException) DocumentException(org.dom4j.DocumentException) ListenerException(nl.nn.adapterframework.core.ListenerException) IOException(java.io.IOException) ConfigurationException(nl.nn.adapterframework.configuration.ConfigurationException) TimeOutException(nl.nn.adapterframework.core.TimeOutException) IbisJavaSender(nl.nn.adapterframework.senders.IbisJavaSender) TimeOutException(nl.nn.adapterframework.core.TimeOutException) JavaListener(nl.nn.adapterframework.receivers.JavaListener) Parameter(nl.nn.adapterframework.parameters.Parameter) JmsSender(nl.nn.adapterframework.jms.JmsSender) SenderException(nl.nn.adapterframework.core.SenderException) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) FixedQuerySender(nl.nn.adapterframework.jdbc.FixedQuerySender) PipeLineSessionBase(nl.nn.adapterframework.core.PipeLineSessionBase)

Aggregations

JmsSender (nl.nn.adapterframework.jms.JmsSender)8 IOException (java.io.IOException)4 HashMap (java.util.HashMap)4 ArrayList (java.util.ArrayList)3 LinkedHashMap (java.util.LinkedHashMap)3 List (java.util.List)3 Map (java.util.Map)3 SenderException (nl.nn.adapterframework.core.SenderException)3 TimeOutException (nl.nn.adapterframework.core.TimeOutException)3 Iterator (java.util.Iterator)2 ZipInputStream (java.util.zip.ZipInputStream)2 ListenerException (nl.nn.adapterframework.core.ListenerException)2 IbisWebServiceSender (nl.nn.adapterframework.http.IbisWebServiceSender)2 WebServiceListener (nl.nn.adapterframework.http.WebServiceListener)2 WebServiceSender (nl.nn.adapterframework.http.WebServiceSender)2 DirectQuerySender (nl.nn.adapterframework.jdbc.DirectQuerySender)2 FixedQuerySender (nl.nn.adapterframework.jdbc.FixedQuerySender)2 JdbcException (nl.nn.adapterframework.jdbc.JdbcException)2 JmsException (nl.nn.adapterframework.jms.JmsException)2 PullingJmsListener (nl.nn.adapterframework.jms.PullingJmsListener)2