public Acknowledgement someService() { new Thread(new SomeServiceRunnable()).start(); return new Acknowledgement(); }
protected String getAckToken() { return ack.getAckToken(); }
if (ack == null || !ack.getAckToken().equals(ackToken)) { Response.ResponseBuilder builder = Response.status(Response.Status.PRECONDITION_FAILED).entity("Could not acknowledge message, it was probably requeued from a timeout or you have an old link").type("text/plain"); setAcknowledgeLinks(uriInfo, basePath, builder, "-1"); lastConsumed = null; if (ack.wasSet() && doAcknowledge != ack.isAcknowledged()) { StringBuilder msg = new StringBuilder("Could not "); if (doAcknowledge == false) if (ack.wasSet() && doAcknowledge == ack.isAcknowledged()) { Response.ResponseBuilder builder = Response.noContent(); setAcknowledgeLinks(uriInfo, basePath, builder, "-1"); ack.acknowledge(); ack.getMessage().acknowledge(); } catch (ActiveMQException e) { throw new RuntimeException(e); ack.unacknowledge(); unacknowledge();
private void headAcknowledgedConsumerResponse(UriInfo uriInfo, AcknowledgedQueueConsumer consumer, Response.ResponseBuilder builder) { // we synchronize just in case a failed request is still processing synchronized (consumer) { Acknowledgement ack = consumer.getAck(); if (ack == null || ack.wasSet()) { AcknowledgedQueueConsumer.setAcknowledgeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/acknowledged/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } else { consumer.setAcknowledgementLink(builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/acknowledged/" + consumer.getId()); } } }
if (ack == null || !ack.getAckToken().equals(ackToken)) { Response.ResponseBuilder builder = Response.status(Response.Status.PRECONDITION_FAILED).entity("Could not acknowledge message, it was probably requeued from a timeout or you have an old link").type("text/plain"); setAcknowledgeLinks(uriInfo, basePath, builder, "-1"); lastConsumed = null; if (ack.wasSet() && doAcknowledge != ack.isAcknowledged()) { StringBuilder msg = new StringBuilder("Could not "); if (doAcknowledge == false) if (ack.wasSet() && doAcknowledge == ack.isAcknowledged()) { Response.ResponseBuilder builder = Response.noContent(); setAcknowledgeLinks(uriInfo, basePath, builder, "-1"); ack.acknowledge(); ack.getMessage().acknowledge(); } catch (ActiveMQException e) { throw new RuntimeException(e); ack.unacknowledge(); unacknowledge();
private void headAcknowledgedConsumerResponse(UriInfo uriInfo, AcknowledgedQueueConsumer consumer, Response.ResponseBuilder builder) { // we synchronize just in case a failed request is still processing synchronized (consumer) { Acknowledgement ack = consumer.getAck(); if (ack == null || ack.wasSet()) { AcknowledgedQueueConsumer.setAcknowledgeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/acknowledged/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } else { consumer.setAcknowledgementLink(builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/acknowledged/" + consumer.getId()); } } }
@Override protected ClientMessage receiveFromConsumer(long timeoutSecs) throws Exception { ClientMessage message = super.receiveFromConsumer(timeoutSecs); if (message != null) { ack = new Acknowledgement((counter++) + startup, message); //System.out.println("---> Setting ack: " + ack.getAckToken()); } return message; }
@Path("attributes-{attributes}/{consumer-id}") @HEAD public Response headConsumer(@PathParam("attributes") int attributes, @PathParam("consumer-id") String consumerId, @Context UriInfo uriInfo) throws Exception { ActiveMQRestLogger.LOGGER.debug("Handling HEAD request for \"" + uriInfo.getPath() + "\""); QueueConsumer consumer = findConsumer(attributes, consumerId, uriInfo); Response.ResponseBuilder builder = Response.noContent(); // we synchronize just in case a failed request is still processing synchronized (consumer) { if ((attributes & ACKNOWLEDGED) > 0) { AcknowledgedQueueConsumer ackedConsumer = (AcknowledgedQueueConsumer) consumer; Acknowledgement ack = ackedConsumer.getAck(); if (ack == null || ack.wasSet()) { AcknowledgedQueueConsumer.setAcknowledgeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } else { ackedConsumer.setAcknowledgementLink(builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId()); } } else { QueueConsumer.setConsumeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } } return builder.build(); }
protected String getAckToken() { return ack.getAckToken(); }
@Override protected ClientMessage receiveFromConsumer(long timeoutSecs) throws Exception { ClientMessage message = super.receiveFromConsumer(timeoutSecs); if (message != null) { ack = new Acknowledgement((counter++) + startup, message); //System.out.println("---> Setting ack: " + ack.getAckToken()); } return message; }
@Path("attributes-{attributes}/{consumer-id}") @HEAD public Response headConsumer(@PathParam("attributes") int attributes, @PathParam("consumer-id") String consumerId, @Context UriInfo uriInfo) throws Exception { ActiveMQRestLogger.LOGGER.debug("Handling HEAD request for \"" + uriInfo.getPath() + "\""); QueueConsumer consumer = findConsumer(attributes, consumerId, uriInfo); Response.ResponseBuilder builder = Response.noContent(); // we synchronize just in case a failed request is still processing synchronized (consumer) { if ((attributes & ACKNOWLEDGED) > 0) { AcknowledgedQueueConsumer ackedConsumer = (AcknowledgedQueueConsumer) consumer; Acknowledgement ack = ackedConsumer.getAck(); if (ack == null || ack.wasSet()) { AcknowledgedQueueConsumer.setAcknowledgeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } else { ackedConsumer.setAcknowledgementLink(builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId()); } } else { QueueConsumer.setConsumeNextLink(serviceManager.getLinkStrategy(), builder, uriInfo, uriInfo.getMatchedURIs().get(1) + "/attributes-" + attributes + "/" + consumer.getId(), Long.toString(consumer.getConsumeIndex())); } } return builder.build(); }