Package org.apache.activemq

Examples of org.apache.activemq.MessageAvailableConsumer


                        Listener listener = getListener(request);
                        Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
                        Map<MessageAvailableConsumer, String> consumerDestinationMap = getConsumerDestinationNameMap(request);
                        client.closeConsumer(destination); // drop any existing
                        // consumer.
                        MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);

                        consumer.setAvailableListener(listener);
                        consumerIdMap.put(consumer, message);
                        consumerDestinationMap.put(consumer, destinationName);
                        if (LOG.isDebugEnabled()) {
                            LOG.debug("Subscribed: " + consumer + " to " + destination + " id=" + message);
                        }
                    } else if ("unlisten".equals(type)) {
                        Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
                        Map consumerDestinationMap = getConsumerDestinationNameMap(request);
                        MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);

                        consumer.setAvailableListener(null);
                        consumerIdMap.remove(consumer);
                        consumerDestinationMap.remove(consumer);
                        client.closeConsumer(destination);
                        if (LOG.isDebugEnabled()) {
                            LOG.debug("Unsubscribed: " + consumer);
View Full Code Here


        Message message = null;
        synchronized (client) {

            List consumers = client.getConsumers();
            MessageAvailableConsumer consumer = null;

            // Look for a message that is ready to go
            for (int i = 0; message == null && i < consumers.size(); i++) {
                consumer = (MessageAvailableConsumer)consumers.get(i);
                if (consumer.getAvailableListener() == null) {
                    continue;
                }

                // Look for any available messages
                message = consumer.receiveNoWait();
                if (LOG.isDebugEnabled()) {
                    LOG.debug("received " + message + " from " + consumer);
                }
            }

            // Get an existing Continuation or create a new one if there are no
            // messages

            if (message == null) {
                // register this continuation with our listener.
                listener.setContinuation(continuation);

                // Get the continuation object (may wait and/or retry
                // request here).
                continuation.suspend(timeout);
            }
            listener.setContinuation(null);

            // prepare the responds
            response.setContentType("text/xml");
            response.setHeader("Cache-Control", "no-cache");

            StringWriter swriter = new StringWriter();
            PrintWriter writer = new PrintWriter(swriter);

            Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
            Map<MessageAvailableConsumer, String> consumerDestinationNameMap = getConsumerDestinationNameMap(request);
            response.setStatus(HttpServletResponse.SC_OK);
            writer.println("<ajax-response>");

            // Send any message we already have
            if (message != null) {
                String id = consumerIdMap.get(consumer);
                String destinationName = consumerDestinationNameMap.get(consumer);
                writer.print("<response id='");
                writer.print(id);
                writer.print("'");
                if (destinationName != null) {
                    writer.print(" destination='" + destinationName + "' ");
                }
                writer.print(">");
                writeMessageResponse(writer, message);
                writer.println("</response>");
                messages++;
            }

            // Send the rest of the messages
            for (int i = 0; i < consumers.size() && messages < maximumMessages; i++) {
                consumer = (MessageAvailableConsumer)consumers.get(i);
                if (consumer.getAvailableListener() == null) {
                    continue;
                }

                // Look for any available messages
                while (messages < maximumMessages) {
                    message = consumer.receiveNoWait();
                    if (message == null) {
                        break;
                    }
                    messages++;
                    String id = consumerIdMap.get(consumer);
View Full Code Here

            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);
            Continuation continuation = null;
            Listener listener = null;
            Message message = null;

            synchronized (consumer) {
                // Fetch the listeners
                listener = (Listener)consumer.getAvailableListener();
                if (listener == null) {
                    listener = new Listener(consumer);
                    consumer.setAvailableListener(listener);
                }
                // Look for any available messages
                message = consumer.receiveNoWait();

                // Get an existing Continuation or create a new one if there are
                // no events.
                if (message == null) {
                    continuation = ContinuationSupport.getContinuation(request, consumer);

                    // register this continuation with our listener.
                    listener.setContinuation(continuation);

                    // Get the continuation object (may wait and/or retry
                    // request here).
                    continuation.suspend(timeout);
                }

                // Try again now
                if (message == null) {
                    message = consumer.receiveNoWait();
                }

                // write a responds
                response.setContentType("text/xml");
                PrintWriter writer = response.getWriter();

                if (ajax) {
                    writer.println("<ajax-response>");
                }

                // handle any message(s)
                if (message == null) {
                    // No messages so OK response of for ajax else no content.
                    response.setStatus(ajax ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NO_CONTENT);
                } else {
                    // We have at least one message so set up the response
                    response.setStatus(HttpServletResponse.SC_OK);
                    String type = getContentType(request);
                    if (type != null) {
                        response.setContentType(type);
                    }

                    // send a response for each available message (up to max
                    // messages)
                    while ((maxMessages < 0 || messages < maxMessages) && message != null) {
                        if (ajax) {
                            writer.print("<response type='object' id='");
                            writer.print(request.getParameter("id"));
                            writer.println("'>");
                        } else {
                            // only ever 1 message for non ajax!
                            setResponseHeaders(response, message);
                        }

                        writeMessageResponse(writer, message);

                        if (ajax) {
                            writer.println("</response>");
                        }

                        // look for next message
                        messages++;
                        if(maxMessages < 0 || messages < maxMessages) {
                          message = consumer.receiveNoWait();
                        }
                    }
                }

                if (ajax) {
View Full Code Here

            }
            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);
            Message message = null;

            // write a responds
            response.setContentType("text/xml");
            PrintWriter writer = response.getWriter();

            if (ajax) {
                writer.println("<ajax-response>");
            }

            // Only one client thread at a time should poll for messages.
            if (client.getSemaphore().tryAcquire()) {
                try {
                    // Look for any available messages
                    message = consumer.receive(timeout);

                    // handle any message(s)
                    if (message == null) {
                        // No messages so OK response of for ajax else no
                        // content.
                        response.setStatus(ajax ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NO_CONTENT);
                    } else {
                        // We have at least one message so set up the
                        // response
                        response.setStatus(HttpServletResponse.SC_OK);
                        String type = getContentType(request);
                        if (type != null) {
                            response.setContentType(type);
                        }

                        // send a response for each available message (up to
                        // max
                        // messages)
                        while ((maxMessages < 0 || messages < maxMessages) && message != null) {
                            if (ajax) {
                                writer.print("<response type='object' id='");
                                writer.print(request.getParameter("id"));
                                writer.println("'>");
                            } else {
                                // only ever 1 message for non ajax!
                                setResponseHeaders(response, message);
                            }

                            writeMessageResponse(writer, message);

                            if (ajax) {
                                writer.println("</response>");
                            }

                            // look for next message
                            messages++;
                            if(maxMessages < 0 || messages < maxMessages) {
                              message = consumer.receiveNoWait();
                            }

                        }
                    }
                } finally {
View Full Code Here

            WebClient client = getWebClient(request);
            Destination destination = getDestination(client, request);
            if (destination == null) {
                throw new NoDestinationSuppliedException();
            }
            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination, request.getHeader(WebClient.selectorName));
            Message message = null;
            message = (Message)request.getAttribute("message");
            if (message != null) {
                // we're resuming continuation,
                // so just write the message and return
                writeResponse(request, response, message);
                return;
            }
            long timeout = getReadTimeout(request);

            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            Continuation continuation = null;
            Listener listener = null;

            // Look for any available messages (need a little timeout)
            message = consumer.receive(10);

            // Get an existing Continuation or create a new one if there are
            // no events.
            if (message == null) {
                continuation = ContinuationSupport.getContinuation(request);

                if (continuation.isExpired()) {
                    response.setStatus(HttpServletResponse.SC_NO_CONTENT);
                    return;
                }

                continuation.setTimeout(timeout);
                continuation.suspend();

                // Fetch the listeners
                listener = (Listener)consumer.getAvailableListener();
                if (listener == null) {
                    listener = new Listener(consumer);
                    consumer.setAvailableListener(listener);
                }

                // register this continuation with our listener.
                listener.setContinuation(continuation);
            }
View Full Code Here

            WebClient client = getWebClient(request);
            Destination destination = getDestination(client, request);
            if (destination == null) {
                throw new NoDestinationSuppliedException();
            }
            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination, request.getHeader(WebClient.selectorName));
            Message message = null;
            message = (Message)request.getAttribute("message");
            if (message != null) {
                // we're resuming continuation,
                // so just write the message and return
                writeResponse(request, response, message);
                return;
            }
            long timeout = getReadTimeout(request);

            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            Continuation continuation = null;
            Listener listener = null;
           

            // Look for any available messages
            message = consumer.receive(10);

            // Get an existing Continuation or create a new one if there are
            // no events.
            if (message == null) {
                continuation = ContinuationSupport.getContinuation(request);
               
                if (continuation.isExpired()) {
                    response.setStatus(HttpServletResponse.SC_NO_CONTENT);
                    return;
                }

                continuation.setTimeout(timeout);
                continuation.suspend();
               
                // Fetch the listeners
                listener = (Listener)consumer.getAvailableListener();
                if (listener == null) {
                    listener = new Listener(consumer);
                    consumer.setAvailableListener(listener);
                }

                // register this continuation with our listener.
                listener.setContinuation(continuation);
            }
View Full Code Here

                        Listener listener = getListener(request);
                        Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
                        Map<MessageAvailableConsumer, String> consumerDestinationMap = getConsumerDestinationNameMap(request);
                        client.closeConsumer(destination); // drop any existing
                        // consumer.
                        MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);

                        consumer.setAvailableListener(listener);
                        consumerIdMap.put(consumer, message);
                        consumerDestinationMap.put(consumer, destinationName);
                        if (LOG.isDebugEnabled()) {
                            LOG.debug("Subscribed: " + consumer + " to " + destination + " id=" + message);
                        }
                    } else if ("unlisten".equals(type)) {
                        Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
                        Map consumerDestinationMap = getConsumerDestinationNameMap(request);
                        MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);

                        consumer.setAvailableListener(null);
                        consumerIdMap.remove(consumer);
                        consumerDestinationMap.remove(consumer);
                        client.closeConsumer(destination);
                        if (LOG.isDebugEnabled()) {
                            LOG.debug("Unsubscribed: " + consumer);
View Full Code Here

        Message message = null;
        synchronized (client) {

            List consumers = client.getConsumers();
            MessageAvailableConsumer consumer = null;

            // Look for a message that is ready to go
            for (int i = 0; message == null && i < consumers.size(); i++) {
                consumer = (MessageAvailableConsumer)consumers.get(i);
                if (consumer.getAvailableListener() == null) {
                    continue;
                }

                // Look for any available messages
                message = consumer.receiveNoWait();
                if (LOG.isDebugEnabled()) {
                    LOG.debug("received " + message + " from " + consumer);
                }
            }

            // Get an existing Continuation or create a new one if there are no
            // messages

            if (message == null) {
                // register this continuation with our listener.
                listener.setContinuation(continuation);

                // Get the continuation object (may wait and/or retry
                // request here).
                continuation.suspend(timeout);
            }
            listener.setContinuation(null);

            // prepare the responds
            response.setContentType("text/xml");
            response.setHeader("Cache-Control", "no-cache");

            StringWriter swriter = new StringWriter();
            PrintWriter writer = new PrintWriter(swriter);

            Map<MessageAvailableConsumer, String> consumerIdMap = getConsumerIdMap(request);
            Map<MessageAvailableConsumer, String> consumerDestinationNameMap = getConsumerDestinationNameMap(request);
            response.setStatus(HttpServletResponse.SC_OK);
            writer.println("<ajax-response>");

            // Send any message we already have
            if (message != null) {
                String id = consumerIdMap.get(consumer);
                String destinationName = consumerDestinationNameMap.get(consumer);
                writer.print("<response id='");
                writer.print(id);
                writer.print("'");
                if (destinationName != null) {
                    writer.print(" destination='" + destinationName + "' ");
                }
                writer.print(">");
                writeMessageResponse(writer, message);
                writer.println("</response>");
                messages++;
            }

            // Send the rest of the messages
            for (int i = 0; i < consumers.size() && messages < maximumMessages; i++) {
                consumer = (MessageAvailableConsumer)consumers.get(i);
                if (consumer.getAvailableListener() == null) {
                    continue;
                }

                // Look for any available messages
                while (messages < maximumMessages) {
                    message = consumer.receiveNoWait();
                    if (message == null) {
                        break;
                    }
                    messages++;
                    String id = consumerIdMap.get(consumer);
View Full Code Here

            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);
            Continuation continuation = null;
            Listener listener = null;
            Message message = null;

            synchronized (consumer) {
                // Fetch the listeners
                listener = (Listener)consumer.getAvailableListener();
                if (listener == null) {
                    listener = new Listener(consumer);
                    consumer.setAvailableListener(listener);
                }
                // Look for any available messages
                message = consumer.receiveNoWait();

                // Get an existing Continuation or create a new one if there are
                // no events.
                if (message == null) {
                    continuation = ContinuationSupport.getContinuation(request, consumer);

                    // register this continuation with our listener.
                    listener.setContinuation(continuation);

                    // Get the continuation object (may wait and/or retry
                    // request here).
                    continuation.suspend(timeout);
                }

                // Try again now
                if (message == null) {
                    message = consumer.receiveNoWait();
                }

                // write a responds
                response.setContentType("text/xml");
                PrintWriter writer = response.getWriter();

                if (ajax) {
                    writer.println("<ajax-response>");
                }

                // handle any message(s)
                if (message == null) {
                    // No messages so OK response of for ajax else no content.
                    response.setStatus(ajax ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NO_CONTENT);
                } else {
                    // We have at least one message so set up the response
                    response.setStatus(HttpServletResponse.SC_OK);
                    String type = getContentType(request);
                    if (type != null) {
                        response.setContentType(type);
                    }

                    // send a response for each available message (up to max
                    // messages)
                    while ((maxMessages < 0 || messages < maxMessages) && message != null) {
                        // System.err.println("message["+messages+"]="+message);
                        if (ajax) {
                            writer.print("<response type='object' id='");
                            writer.print(request.getParameter("id"));
                            writer.println("'>");
                        } else {
                            // only ever 1 message for non ajax!
                            setResponseHeaders(response, message);
                        }

                        writeMessageResponse(writer, message);

                        if (ajax) {
                            writer.println("</response>");
                        }

                        // look for next message
                        message = consumer.receiveNoWait();
                        messages++;
                    }
                }

                if (ajax) {
View Full Code Here

            }
            if (LOG.isDebugEnabled()) {
                LOG.debug("Receiving message(s) from: " + destination + " with timeout: " + timeout);
            }

            MessageAvailableConsumer consumer = (MessageAvailableConsumer)client.getConsumer(destination);
            Message message = null;

            // write a responds
            response.setContentType("text/xml");
            PrintWriter writer = response.getWriter();

            if (ajax) {
                writer.println("<ajax-response>");
            }

            // Only one client thread at a time should poll for messages.
            if (client.getSemaphore().tryAcquire()) {
                try {
                    // Look for any available messages
                    message = consumer.receive(timeout);

                    // handle any message(s)
                    if (message == null) {
                        // No messages so OK response of for ajax else no
                        // content.
                        response.setStatus(ajax ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NO_CONTENT);
                    } else {
                        // We have at least one message so set up the
                        // response
                        response.setStatus(HttpServletResponse.SC_OK);
                        String type = getContentType(request);
                        if (type != null) {
                            response.setContentType(type);
                        }

                        // send a response for each available message (up to
                        // max
                        // messages)
                        while ((maxMessages < 0 || messages < maxMessages) && message != null) {
                            // System.err.println("message["+messages+"]="+message);
                            if (ajax) {
                                writer.print("<response type='object' id='");
                                writer.print(request.getParameter("id"));
                                writer.println("'>");
                            } else {
                                // only ever 1 message for non ajax!
                                setResponseHeaders(response, message);
                            }

                            writeMessageResponse(writer, message);

                            if (ajax) {
                                writer.println("</response>");
                            }

                            // look for next message
                            message = consumer.receiveNoWait();
                            messages++;
                        }
                    }
                } finally {
                    client.getSemaphore().release();
View Full Code Here

TOP

Related Classes of org.apache.activemq.MessageAvailableConsumer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.