当前位置: 首页>>代码示例>>Java>>正文


Java MessagePostProcessor类代码示例

本文整理汇总了Java中org.springframework.amqp.core.MessagePostProcessor的典型用法代码示例。如果您正苦于以下问题:Java MessagePostProcessor类的具体用法?Java MessagePostProcessor怎么用?Java MessagePostProcessor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


MessagePostProcessor类属于org.springframework.amqp.core包,在下文中一共展示了MessagePostProcessor类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: send

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Override
public <T> Future<T> send(final T payload, final Address destination) throws MessagingException {
    Preconditions.checkNotNull(payload, "payload cannot be null!");
    Preconditions.checkNotNull(destination, "destination cannot be null!");

    try {
        UniqueId messageId = uniqueIdFactory.createUniqueId();
        UniqueId correlationId = uniqueIdFactory.createUniqueId();

        Future<T> responseFuture = responseListener.awaitResponse(correlationId);
        MessagePostProcessor postProcessor = postProcessorFactory.createPostProcessor(messageId, correlationId);

        amqpTemplate.convertAndSend(destination.getExchangeName(), destination.getRoutingKey(), payload, postProcessor);
        return responseFuture;
    } catch (Exception e) {
        logger.warn("exception when sending message", e);
        throw new MessagingException(e);
    }
}
 
开发者ID:zeroDivisible,项目名称:spring-rabbitmq-example,代码行数:20,代码来源:AmqpMessagingService.java

示例2: sendMessage

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
public void sendMessage(final String serviceName, final String serviceMethodName,final String correlationId, Object request) {
	logger.info("sendMessage [this.{}, serviceMethodName:{} serviceName:{} correlationId: {}]", this.getClass(), serviceMethodName, serviceName, correlationId);
	rabbitTemplate.setConfirmCallback(this);
	rabbitTemplate.setCorrelationKey(correlationId);
	rabbitTemplate.convertAndSend(routingkey, request, new MessagePostProcessor() {            
    	@Override
        public Message postProcessMessage(Message message) throws AmqpException {
            message.getMessageProperties().setAppId(appId);
            message.getMessageProperties().setTimestamp(new Date());
            message.getMessageProperties().setMessageId(UUID.randomUUID().toString());
            message.getMessageProperties().setCorrelationId(correlationId.getBytes());
            message.getMessageProperties().setHeader("ServiceMethodName", serviceMethodName);
            message.getMessageProperties().setHeader("ServiceName", serviceName);
            return message;
        }
    }, new CorrelationData(correlationId));
}
 
开发者ID:lemon-china,项目名称:lemon-rabbitmq,代码行数:18,代码来源:BasicService.java

示例3: executeAroundConvertAndSendOneArgWithProcessor

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Around(
    "execution(* org.springframework.amqp.core.AmqpTemplate.convertAndSend(Object,org.springframework.amqp.core.MessagePostProcessor))")
public void executeAroundConvertAndSendOneArgWithProcessor(ProceedingJoinPoint call)
    throws Throwable {
  final ArgumentDiscover argumentDiscover = ArgumentDiscover.from(call);
  final MessagePostProcessor argPostProcessor = argumentDiscover.messagePostProcessor;
  final boolean byPass = argPostProcessor instanceof SpanManagerMessagePostProcessor;
  if (byPass) {
    call.proceed(call.getArgs());
  } else {
    executeConvertAndSendWithoutPostProcessor(call, argumentDiscover);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:14,代码来源:AmqpTemplateAspect.java

示例4: executeAroundConvertAndSendTwoArgsWithPostProcessor

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Around(
    "execution(* org.springframework.amqp.core.AmqpTemplate.convertAndSend(String,Object,org.springframework.amqp.core.MessagePostProcessor))")
public void executeAroundConvertAndSendTwoArgsWithPostProcessor(ProceedingJoinPoint call)
    throws Throwable {
  final ArgumentDiscover argumentDiscover = ArgumentDiscover.from(call);
  final MessagePostProcessor argPostProcessor = argumentDiscover.messagePostProcessor;
  final boolean byPass = argPostProcessor instanceof SpanManagerMessagePostProcessor;
  if (byPass) {
    call.proceed(call.getArgs());
  } else {
    executeConvertAndSendWithoutPostProcessor(call, argumentDiscover);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:14,代码来源:AmqpTemplateAspect.java

示例5: executeAroundConvertAndSendThreeArgsWithPostProcessor

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Around(
    "execution(* org.springframework.amqp.core.AmqpTemplate.convertAndSend(String,String,Object,org.springframework.amqp.core.MessagePostProcessor))")
public void executeAroundConvertAndSendThreeArgsWithPostProcessor(ProceedingJoinPoint call)
    throws Throwable {
  final ArgumentDiscover discoverArguments = ArgumentDiscover.from(call);
  final MessagePostProcessor argPostProcessor = discoverArguments.messagePostProcessor;
  final boolean byPass = argPostProcessor instanceof SpanManagerMessagePostProcessor;
  if (byPass) {
    call.proceed(call.getArgs());
  } else {
    executeConvertAndSendWithoutPostProcessor(call, discoverArguments);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:14,代码来源:AmqpTemplateAspect.java

示例6: executeConvertAndSendWithoutPostProcessor

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
private void executeConvertAndSendWithoutPostProcessor(
    ProceedingJoinPoint call, ArgumentDiscover argumentDiscover) throws Throwable {
  final Object[] args = argumentDiscover.args;
  final MessagePostProcessor argPostProcessor = argumentDiscover.messagePostProcessor;

  boolean executed;

  try {
    if (argPostProcessor != null) {
      final String exchange = argumentDiscover.exchangeOfSender;
      final String routingKey = argumentDiscover.routingKey;
      final SpanManagerMessagePostProcessor postProcessor =
          new SpanManagerMessagePostProcessor(spanManager, buildSpanName(exchange, routingKey));
      final MessagePostProcessor overwritePostProcessor =
          new CompositeMessagePostProcessor(argPostProcessor, postProcessor);

      args[args.length - 1] = overwritePostProcessor;
      call.proceed(args);
      executed = true;
    } else {
      executed = changeExecutionOfMethodToUsePostProcessor(call, argumentDiscover);
    }
  } catch (Exception e) {
    spanManager.afterSend(e);
    throw e;
  }
  if (executed) {
    spanManager.afterSend(null);
  } else {
    executeWithoutPostProcessor(call, argumentDiscover);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:33,代码来源:AmqpTemplateAspect.java

示例7: postProcessMessage

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Override
public Message postProcessMessage(Message message) throws AmqpException {
  Message localMessage = message;
  for (MessagePostProcessor postProcessor : postProcessorList) {
    localMessage = postProcessor.postProcessMessage(localMessage);
  }
  return localMessage;
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:9,代码来源:CompositeMessagePostProcessor.java

示例8: convertAndSend

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Override
public void convertAndSend(Object message, MessagePostProcessor messagePostProcessor)
    throws AmqpException {
  messagePostProcessor.postProcessMessage(convertMessageIfNecessary(message));
  mockManager.throwExceptionIfConfigured();
  logger.debug("convertAndSend: {} {}", message, messagePostProcessor);
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:8,代码来源:RabbitTemplateMock.java

示例9: convertSendAndReceive

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Override
public Object convertSendAndReceive(Object message, MessagePostProcessor messagePostProcessor)
    throws AmqpException {
  mockManager.throwExceptionIfConfigured();
  logger.debug("convertSendAndReceive: {} {}", message, messagePostProcessor);
  return message;
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:8,代码来源:RabbitTemplateMock.java

示例10: test

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Test
public void test() throws Exception {
	Advice[] adviceChain = TestUtils.getPropertyValue(this.container, "adviceChain", Advice[].class);
	assertEquals(1, adviceChain.length);
	RetryTemplate retryTemplate = TestUtils.getPropertyValue(adviceChain[0], "retryOperations",
			RetryTemplate.class);
	assertEquals(5, TestUtils.getPropertyValue(retryTemplate, "retryPolicy.maxAttempts"));
	assertEquals(123L, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.initialInterval"));
	assertEquals(345L, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.maxInterval"));
	assertEquals(1.5, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.multiplier"));
	assertEquals("scsapp-testq", this.container.getQueueNames()[0]);
	assertFalse(TestUtils.getPropertyValue(this.container, "defaultRequeueRejected", Boolean.class));
	assertEquals(2, TestUtils.getPropertyValue(this.container, "concurrentConsumers"));
	assertEquals(3, TestUtils.getPropertyValue(this.container, "maxConcurrentConsumers"));
	assertEquals(AcknowledgeMode.NONE, TestUtils.getPropertyValue(this.container, "acknowledgeMode"));
	assertEquals(10, TestUtils.getPropertyValue(this.container, "prefetchCount"));
	assertEquals(5, TestUtils.getPropertyValue(this.container, "txSize"));

	this.rabbitTemplate.convertAndSend("", "scsapp-testq", "foo", new MessagePostProcessor() {

		@Override
		public org.springframework.amqp.core.Message postProcessMessage(
				org.springframework.amqp.core.Message message) throws AmqpException {
			message.getMessageProperties().getHeaders().put("bar", "baz");
			return message;
		}

	});
	Message<?> out = this.messageCollector.forChannel(this.channels.output()).poll(10, TimeUnit.SECONDS);
	assertNotNull(out);
	assertEquals("foo", out.getPayload());
	assertEquals("baz", out.getHeaders().get("bar"));
	assertNull(out.getHeaders().get(AmqpHeaders.DELIVERY_MODE));
}
 
开发者ID:spring-cloud-stream-app-starters,项目名称:rabbit,代码行数:35,代码来源:RabbitSourceTests.java

示例11: test

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@Test
public void test() throws Exception {
	Advice[] adviceChain = TestUtils.getPropertyValue(this.container, "adviceChain", Advice[].class);
	assertEquals(1, adviceChain.length);
	RetryTemplate retryTemplate = TestUtils.getPropertyValue(adviceChain[0], "retryOperations",
			RetryTemplate.class);
	assertEquals(5, TestUtils.getPropertyValue(retryTemplate, "retryPolicy.maxAttempts"));
	assertEquals(123L, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.initialInterval"));
	assertEquals(345L, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.maxInterval"));
	assertEquals(1.5, TestUtils.getPropertyValue(retryTemplate, "backOffPolicy.multiplier"));
	assertEquals("scsapp-testq", this.container.getQueueNames()[0]);
	assertFalse(TestUtils.getPropertyValue(this.container, "defaultRequeueRejected", Boolean.class));
	assertEquals(2, TestUtils.getPropertyValue(this.container, "concurrentConsumers"));
	assertEquals(3, TestUtils.getPropertyValue(this.container, "maxConcurrentConsumers"));
	assertEquals(AcknowledgeMode.NONE, TestUtils.getPropertyValue(this.container, "acknowledgeMode"));
	assertEquals(10, TestUtils.getPropertyValue(this.container, "prefetchCount"));
	assertEquals(5, TestUtils.getPropertyValue(this.container, "txSize"));

	this.rabbitTemplate.convertAndSend("", "scsapp-testq", "foo", new MessagePostProcessor() {

		@Override
		public org.springframework.amqp.core.Message postProcessMessage(
				org.springframework.amqp.core.Message message) throws AmqpException {
			message.getMessageProperties().getHeaders().put("bar", "baz");
			return message;
		}

	});
	Message<?> out = this.messageCollector.forChannel(this.channels.output()).poll(10,  TimeUnit.SECONDS);
	assertNotNull(out);
	assertEquals("foo", out.getPayload());
	assertEquals("baz", out.getHeaders().get("bar"));
	assertNull(out.getHeaders().get(AmqpHeaders.DELIVERY_MODE));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-app-starters,代码行数:35,代码来源:RabbitSourceTests.java

示例12: startCalification

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
public void startCalification(SubmissionJudge submit, final int priority) {
    SubmissionJudgeToSubmissionDTOAdapter submission = new SubmissionJudgeToSubmissionDTOAdapter(submit);
    submitTemplate.convertAndSend(submit.getLang(), submission, new MessagePostProcessor() {
        @Override
        public Message postProcessMessage(Message message) throws AmqpException {
            message.getMessageProperties().setPriority(priority);
            return message;
        }
    });
}
 
开发者ID:dovier,项目名称:coj-web,代码行数:11,代码来源:Utils.java

示例13: process

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
@RequestMapping(value = "/process", method = RequestMethod.POST)
ResponseEntity<Map<?, ?>> process(OAuthAuthenticationToken t, @RequestBody String query) {
    logger.debug("the principal is " + t.getName());

    SecurityContext securityContext = ForceSecurityContextHolder.get();

    String accessToken = securityContext.getSessionId();
    String endpoint = securityContext.getEndPointHost();
    String uuid = UUID.randomUUID().toString() + System.currentTimeMillis() + "";

    final Map<String, String> stringStringMap = new HashMap<>();
    stringStringMap.put("batchId", uuid);
    stringStringMap.put("accessToken", accessToken);
    stringStringMap.put("apiEndpoint", endpoint);
    stringStringMap.put("query", query);

    String batchId = (String) this.rabbitTemplate.convertSendAndReceive(
            (Object) query, new MessagePostProcessor() {
        @Override
        public Message postProcessMessage(Message message) throws AmqpException {
            for (String h : stringStringMap.keySet()) {
                message.getMessageProperties().setHeader(h, stringStringMap.get(h));
            }
            return message;
        }
    });
    // the client will know to update the results page once this REST endpoint returns.
    // todo could we refactor this so that client is notified of the updated state by a websocket? \
    // todo could we maybe refactor this to use async servlets?

    log("received batchId: " + batchId);

    return new ResponseEntity<Map<?, ?>>(stringStringMap, HttpStatus.OK);
}
 
开发者ID:joshlong,项目名称:sfdc-cloudfoundry,代码行数:35,代码来源:SfdcRestController.java

示例14: ArgumentDiscover

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
private ArgumentDiscover(ProceedingJoinPoint call) {
  args = call.getArgs();
  target = call.getTarget();

  String exchangeFromArgs = null;
  final String methodName = call.getSignature().getName();
  final int argsLength = args.length;
  if (CONVERT_AND_SEND.equals(methodName)) {
    if (args[argsLength - 1] instanceof MessagePostProcessor) {
      if (argsLength > 3) {
        exchangeFromArgs = (String) args[0];
        routingKey = (String) args[1];
      } else if (argsLength > 2) {
        routingKey = (String) args[0];
      }
    } else {
      if (argsLength > 2) {
        exchangeFromArgs = (String) args[0];
        routingKey = (String) args[1];
      } else if (argsLength > 1) {
        routingKey = (String) args[0];
      }
    }
  } else {
    if (argsLength > 1) {
      if (args[0] instanceof String && args[1] instanceof String) {
        exchangeFromArgs = (String) args[0];
        routingKey = (String) args[1];
      } else {
        routingKey = (String) args[0];
      }
    }
  }

  if (exchangeFromArgs == null) {
    exchangeOfSender = getExchangeFromRabbitTemplate(target);
  } else {
    exchangeOfSender = exchangeFromArgs;
  }

  for (Object arg : args) {
    if (arg instanceof MessagePostProcessor) {
      messagePostProcessor = (MessagePostProcessor) arg;
    } else if (arg instanceof Message) {
      message = (Message) arg;
    }
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:49,代码来源:AmqpTemplateAspect.java

示例15: CompositeMessagePostProcessor

import org.springframework.amqp.core.MessagePostProcessor; //导入依赖的package包/类
public CompositeMessagePostProcessor(MessagePostProcessor... postProcessors) {
  postProcessorList = new ArrayList<>();
  for (MessagePostProcessor processor : postProcessors) {
    postProcessorList.add(processor);
  }
}
 
开发者ID:netshoes,项目名称:spring-cloud-sleuth-amqp,代码行数:7,代码来源:CompositeMessagePostProcessor.java


注:本文中的org.springframework.amqp.core.MessagePostProcessor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。