org.apache.activemq.command.Message.copy()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(13.3k)|赞(0)|评价(0)|浏览(308)

本文整理了Java中org.apache.activemq.command.Message.copy()方法的一些代码示例,展示了Message.copy()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.copy()方法的具体详情如下:
包路径:org.apache.activemq.command.Message
类名称:Message
方法名:copy

Message.copy介绍

暂无

代码示例

代码示例来源:origin: apache/activemq

  1. protected void copy(ActiveMQMessage copy) {
  2. super.copy(copy);
  3. copy.acknowledgeCallback = acknowledgeCallback;
  4. }

代码示例来源:origin: apache/activemq

  1. private Message copy(Message original, ActiveMQDestination target) {
  2. Message msg = original.copy();
  3. if (setOriginalDestination) {
  4. msg.setDestination(target);
  5. msg.setOriginalDestination(original.getDestination());
  6. }
  7. return msg;
  8. }

代码示例来源:origin: apache/activemq

  1. @Override
  2. public void send(ProducerBrokerExchange producerExchange, Message messageSend) throws Exception {
  3. if (isLogAll() || isLogProducerEvents()) {
  4. logSend(messageSend.copy());
  5. }
  6. super.send(producerExchange, messageSend);
  7. }

代码示例来源:origin: apache/activemq

  1. /**
  2. * Sends a message to the given destination which may be a wildcard
  3. *
  4. * @param context broker context
  5. * @param message message to send
  6. * @param destination possibly wildcard destination to send the message to
  7. * @throws Exception on error
  8. */
  9. protected void send(ProducerBrokerExchange context, Message message, ActiveMQDestination destination) throws Exception {
  10. Broker broker = context.getConnectionContext().getBroker();
  11. Set<Destination> destinations = broker.getDestinations(destination);
  12. for (Destination dest : destinations) {
  13. dest.send(context, message.copy());
  14. }
  15. }

代码示例来源:origin: apache/activemq

  1. private void doForward(ProducerBrokerExchange context, Message message, Broker regionBroker, ActiveMQDestination destination) throws Exception {
  2. Message forwardedMessage = message.copy();
  3. forwardedMessage.setMemoryUsage(null);
  4. forwardedMessage.setOriginalDestination( message.getDestination() );
  5. forwardedMessage.setDestination(destination);
  6. // Send it back through the region broker for routing.
  7. context.setMutable(true);
  8. regionBroker.send(context, forwardedMessage);
  9. }
  10. }

代码示例来源:origin: apache/activemq

  1. public boolean add(ConnectionContext context, MessageReference node) throws Exception {
  2. final Message message = node.getMessage();
  3. final Object retainValue = message.getProperty(RETAIN_PROPERTY);
  4. // retain property set to true
  5. final boolean retain = retainValue != null && Boolean.parseBoolean(retainValue.toString());
  6. if (retain) {
  7. if (message.getContent().getLength() > 0) {
  8. // non zero length message content
  9. retainedMessage = message.copy();
  10. retainedMessage.getMessage().removeProperty(RETAIN_PROPERTY);
  11. retainedMessage.getMessage().setProperty(RETAINED_PROPERTY, true);
  12. } else {
  13. // clear retained message
  14. retainedMessage = null;
  15. }
  16. // TODO should we remove the publisher's retain property??
  17. node.getMessage().removeProperty(RETAIN_PROPERTY);
  18. }
  19. return wrapped == null ? true : wrapped.add(context, node);
  20. }

代码示例来源:origin: apache/activemq

  1. public void send(ProducerBrokerExchange context, Message message) throws Exception {
  2. message.setDestination(mirrorDestination.getActiveMQDestination());
  3. mirrorDestination.send(context, message);
  4. if (isCopyMessage()) {
  5. message = message.copy();
  6. }
  7. message.setDestination(destination.getActiveMQDestination());
  8. message.setMemoryUsage(null); // set this to null so that it will use the queue memoryUsage instance instead of the topic.
  9. super.send(context, message);
  10. }
  11. };

代码示例来源:origin: apache/activemq

  1. @Override
  2. public Response processMessageDispatch(MessageDispatch md) throws Exception {
  3. waitForTransportInterruptionProcessingToComplete();
  4. ActiveMQDispatcher dispatcher = dispatchers.get(md.getConsumerId());
  5. if (dispatcher != null) {
  6. // Copy in case a embedded broker is dispatching via
  7. // vm://
  8. // md.getMessage() == null to signal end of queue
  9. // browse.
  10. Message msg = md.getMessage();
  11. if (msg != null) {
  12. msg = msg.copy();
  13. msg.setReadOnlyBody(true);
  14. msg.setReadOnlyProperties(true);
  15. msg.setRedeliveryCounter(md.getRedeliveryCounter());
  16. msg.setConnection(ActiveMQConnection.this);
  17. msg.setMemoryUsage(null);
  18. md.setMessage(msg);
  19. }
  20. dispatcher.dispatch(md);
  21. } else {
  22. LOG.debug("{} no dispatcher for {} in {}", this, md, dispatchers);
  23. }
  24. return null;
  25. }

代码示例来源:origin: apache/activemq

  1. /**
  2. *
  3. */
  4. public void send(ProducerBrokerExchange producerExchange, Message message) throws Exception {
  5. ActiveMQDestination destination = message.getDestination();
  6. if (destination.isComposite()) {
  7. ActiveMQDestination[] destinations = destination.getCompositeDestinations();
  8. for (int i = 0; i < destinations.length; i++) {
  9. if (i != 0) {
  10. message = message.copy();
  11. message.setMemoryUsage(null);
  12. }
  13. message.setOriginalDestination(destination);
  14. message.setDestination(destinations[i]);
  15. next.send(producerExchange, message);
  16. }
  17. } else {
  18. next.send(producerExchange, message);
  19. }
  20. }

代码示例来源:origin: apache/activemq

  1. private void doSchedule(Message messageSend, Object cronValue, Object periodValue, Object delayValue) throws Exception {
  2. long delay = 0;
  3. long period = 0;
  4. int repeat = 0;
  5. String cronEntry = "";
  6. // clear transaction context
  7. Message msg = messageSend.copy();
  8. msg.setTransactionId(null);
  9. org.apache.activemq.util.ByteSequence packet = wireFormat.marshal(msg);
  10. if (cronValue != null) {
  11. cronEntry = cronValue.toString();
  12. }
  13. if (periodValue != null) {
  14. period = (Long) TypeConversionSupport.convert(periodValue, Long.class);
  15. }
  16. if (delayValue != null) {
  17. delay = (Long) TypeConversionSupport.convert(delayValue, Long.class);
  18. }
  19. Object repeatValue = msg.getProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT);
  20. if (repeatValue != null) {
  21. repeat = (Integer) TypeConversionSupport.convert(repeatValue, Integer.class);
  22. }
  23. //job id should be unique for every job (Same format as MessageId)
  24. MessageId jobId = new MessageId(messageSend.getMessageId().getProducerId(), longGenerator.getNextSequenceId());
  25. getInternalScheduler().schedule(jobId.toString(),
  26. new ByteSequence(packet.data, packet.offset, packet.length), cronEntry, delay, period, repeat);
  27. }

代码示例来源:origin: apache/activemq

  1. @Override
  2. public boolean sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference,
  3. Subscription subscription, Throwable poisonCause) {
  4. boolean wasDLQd = super.sendToDeadLetterQueue(context, messageReference, subscription, poisonCause);
  5. if (wasDLQd) {
  6. try {
  7. if (!messageReference.isAdvisory()) {
  8. BaseDestination baseDestination = (BaseDestination) messageReference.getMessage().getRegionDestination();
  9. ActiveMQTopic topic = AdvisorySupport.getMessageDLQdAdvisoryTopic(baseDestination.getActiveMQDestination());
  10. Message payload = messageReference.getMessage().copy();
  11. if (!baseDestination.isIncludeBodyForAdvisory()) {
  12. payload.clearBody();
  13. }
  14. fireAdvisory(context, topic, payload);
  15. }
  16. } catch (Exception e) {
  17. handleFireFailure("add to DLQ", e);
  18. }
  19. }
  20. return wasDLQd;
  21. }

代码示例来源:origin: apache/activemq

  1. private void scheduleRedelivery(ConnectionContext context, MessageReference messageReference, long delay, int redeliveryCount) throws Exception {
  2. if (LOG.isTraceEnabled()) {
  3. Destination regionDestination = (Destination) messageReference.getRegionDestination();
  4. LOG.trace("redelivery #{} of: {} with delay: {}, dest: {}", new Object[]{
  5. redeliveryCount, messageReference.getMessageId(), delay, regionDestination.getActiveMQDestination()
  6. });
  7. }
  8. final Message old = messageReference.getMessage();
  9. Message message = old.copy();
  10. message.setTransactionId(null);
  11. message.setMemoryUsage(null);
  12. message.removeProperty(ScheduledMessage.AMQ_SCHEDULED_ID);
  13. message.setProperty(REDELIVERY_DELAY, delay);
  14. message.setProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delay);
  15. message.setRedeliveryCounter(redeliveryCount);
  16. boolean originalFlowControl = context.isProducerFlowControl();
  17. try {
  18. context.setProducerFlowControl(false);
  19. ProducerInfo info = new ProducerInfo();
  20. ProducerState state = new ProducerState(info);
  21. ProducerBrokerExchange producerExchange = new ProducerBrokerExchange();
  22. producerExchange.setProducerState(state);
  23. producerExchange.setMutable(true);
  24. producerExchange.setConnectionContext(context);
  25. context.getBroker().send(producerExchange, message);
  26. } finally {
  27. context.setProducerFlowControl(originalFlowControl);
  28. }
  29. }

代码示例来源:origin: apache/activemq

  1. protected Message configureMessage(MessageDispatch md) throws IOException {
  2. Message message = md.getMessage().copy();
  3. // Update the packet to show where it came from.
  4. message.setBrokerPath(appendToBrokerPath(message.getBrokerPath(), localBrokerPath));
  5. message.setProducerId(producerInfo.getProducerId());
  6. message.setDestination(md.getDestination());
  7. message.setMemoryUsage(null);
  8. if (message.getOriginalTransactionId() == null) {
  9. message.setOriginalTransactionId(message.getTransactionId());
  10. }
  11. message.setTransactionId(null);
  12. if (configuration.isUseCompression()) {
  13. message.compress();
  14. }
  15. return message;
  16. }

代码示例来源:origin: apache/activemq

  1. @Override
  2. public void messageExpired(ConnectionContext context, MessageReference messageReference, Subscription subscription) {
  3. super.messageExpired(context, messageReference, subscription);
  4. try {
  5. if (!messageReference.isAdvisory()) {
  6. BaseDestination baseDestination = (BaseDestination) messageReference.getMessage().getRegionDestination();
  7. ActiveMQTopic topic = AdvisorySupport.getExpiredMessageTopic(baseDestination.getActiveMQDestination());
  8. Message payload = messageReference.getMessage().copy();
  9. if (!baseDestination.isIncludeBodyForAdvisory()) {
  10. payload.clearBody();
  11. }
  12. ActiveMQMessage advisoryMessage = new ActiveMQMessage();
  13. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_MESSAGE_ID, payload.getMessageId().toString());
  14. fireAdvisory(context, topic, payload, null, advisoryMessage);
  15. }
  16. } catch (Exception e) {
  17. handleFireFailure("expired", e);
  18. }
  19. }

代码示例来源:origin: apache/activemq

  1. final Message copy = message.copy();
  2. copy.setOriginalDestination(message.getDestination());
  3. copy.setDestination(newDestination);

代码示例来源:origin: apache/activemq

  1. @Override
  2. public void messageConsumed(ConnectionContext context, MessageReference messageReference) {
  3. super.messageConsumed(context, messageReference);
  4. try {
  5. if (!messageReference.isAdvisory()) {
  6. BaseDestination baseDestination = (BaseDestination) messageReference.getMessage().getRegionDestination();
  7. ActiveMQTopic topic = AdvisorySupport.getMessageConsumedAdvisoryTopic(baseDestination.getActiveMQDestination());
  8. Message payload = messageReference.getMessage().copy();
  9. if (!baseDestination.isIncludeBodyForAdvisory()) {
  10. payload.clearBody();
  11. }
  12. ActiveMQMessage advisoryMessage = new ActiveMQMessage();
  13. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_MESSAGE_ID, payload.getMessageId().toString());
  14. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_DESTINATION, baseDestination.getActiveMQDestination().getQualifiedName());
  15. fireAdvisory(context, topic, payload, null, advisoryMessage);
  16. }
  17. } catch (Exception e) {
  18. handleFireFailure("consumed", e);
  19. }
  20. }

代码示例来源:origin: apache/activemq

  1. @Override
  2. public void messageDelivered(ConnectionContext context, MessageReference messageReference) {
  3. super.messageDelivered(context, messageReference);
  4. try {
  5. if (!messageReference.isAdvisory()) {
  6. BaseDestination baseDestination = (BaseDestination) messageReference.getMessage().getRegionDestination();
  7. ActiveMQTopic topic = AdvisorySupport.getMessageDeliveredAdvisoryTopic(baseDestination.getActiveMQDestination());
  8. Message payload = messageReference.getMessage().copy();
  9. if (!baseDestination.isIncludeBodyForAdvisory()) {
  10. payload.clearBody();
  11. }
  12. ActiveMQMessage advisoryMessage = new ActiveMQMessage();
  13. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_MESSAGE_ID, payload.getMessageId().toString());
  14. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_DESTINATION, baseDestination.getActiveMQDestination().getQualifiedName());
  15. fireAdvisory(context, topic, payload, null, advisoryMessage);
  16. }
  17. } catch (Exception e) {
  18. handleFireFailure("delivered", e);
  19. }
  20. }

代码示例来源:origin: apache/activemq

  1. public static void doResend(final ConnectionContext context, Message originalMessage, ActiveMQDestination deadLetterDestination, boolean copy) throws Exception {
  2. Message message = copy ? originalMessage.copy() : originalMessage;
  3. message.setOriginalDestination(message.getDestination());
  4. message.setOriginalTransactionId(message.getTransactionId());
  5. message.setDestination(deadLetterDestination);
  6. message.setTransactionId(null);
  7. message.setMemoryUsage(null);
  8. message.setRedeliveryCounter(0);
  9. message.getMessageId().setDataLocator(null);
  10. boolean originalFlowControl = context.isProducerFlowControl();
  11. try {
  12. context.setProducerFlowControl(false);
  13. ProducerInfo info = new ProducerInfo();
  14. ProducerState state = new ProducerState(info);
  15. ProducerBrokerExchange producerExchange = new ProducerBrokerExchange();
  16. producerExchange.setProducerState(state);
  17. producerExchange.setMutable(true);
  18. producerExchange.setConnectionContext(context);
  19. context.getBroker().send(producerExchange, message);
  20. } finally {
  21. context.setProducerFlowControl(originalFlowControl);
  22. }
  23. }

代码示例来源:origin: apache/activemq

  1. @Override
  2. public void messageDiscarded(ConnectionContext context, Subscription sub, MessageReference messageReference) {
  3. super.messageDiscarded(context, sub, messageReference);
  4. try {
  5. if (!messageReference.isAdvisory()) {
  6. BaseDestination baseDestination = (BaseDestination) messageReference.getMessage().getRegionDestination();
  7. ActiveMQTopic topic = AdvisorySupport.getMessageDiscardedAdvisoryTopic(baseDestination.getActiveMQDestination());
  8. Message payload = messageReference.getMessage().copy();
  9. if (!baseDestination.isIncludeBodyForAdvisory()) {
  10. payload.clearBody();
  11. }
  12. ActiveMQMessage advisoryMessage = new ActiveMQMessage();
  13. if (sub instanceof TopicSubscription) {
  14. advisoryMessage.setIntProperty(AdvisorySupport.MSG_PROPERTY_DISCARDED_COUNT, ((TopicSubscription) sub).discarded());
  15. }
  16. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_MESSAGE_ID, payload.getMessageId().toString());
  17. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_CONSUMER_ID, sub.getConsumerInfo().getConsumerId().toString());
  18. advisoryMessage.setStringProperty(AdvisorySupport.MSG_PROPERTY_DESTINATION, baseDestination.getActiveMQDestination().getQualifiedName());
  19. fireAdvisory(context, topic, payload, null, advisoryMessage);
  20. }
  21. } catch (Exception e) {
  22. handleFireFailure("discarded", e);
  23. }
  24. }

代码示例来源:origin: apache/activemq

  1. Message message = msg.copy();

相关文章

Message类方法