Как мне покрыть метод, вызываемый с MethodInvoker под аспектом? - PullRequest
0 голосов
/ 05 октября 2018

метод для создания метрик:

@Override
    @Metric(metricName = "rmq.onMessage", type = { MetricType.METER, MetricType.HISTOGRAM })
    public void onMessage(Object messageBytes) {
    //some processing
    }

Метод регистрации здесь:

 MessageListenerAdapter listenerAdapter = new MessageListenerAdapter(messageConsumer, "onMessage");

если в очередь поступают какие-либо сообщения, то onMessage будет вызываться с использованием:

protected Object invokeListenerMethod(String methodName, Object[] arguments, Message originalMessage)
            throws Exception {
        try {
            MethodInvoker methodInvoker = new MethodInvoker();
            methodInvoker.setTargetObject(getDelegate());
            methodInvoker.setTargetMethod(methodName);
            methodInvoker.setArguments(arguments);
            methodInvoker.prepare();
            return methodInvoker.invoke();
        }

Мой аспект:

@Around("@annotation(myAnnotation.graphite.annotations.Metric)")
    public Object graphiteAspect(ProceedingJoinPoint joinPoint) {
      //metrics reporting done here
    }
...