1
2
3
4
5
6
7
8
9
10
11 package org.mule.config.spring;
12
13 import org.mule.api.MuleEventContext;
14 import org.mule.util.concurrent.Latch;
15
16 import java.lang.reflect.Method;
17 import java.util.concurrent.TimeUnit;
18
19 import org.springframework.aop.MethodBeforeAdvice;
20
21 public class FunctionalTestAdvice implements MethodBeforeAdvice
22 {
23
24 private Latch latch = new Latch();
25 private String message;
26
27 public void before(Method method, Object[] args, Object target) throws Throwable
28 {
29 if (null != args && args.length == 1 && args[0] instanceof MuleEventContext)
30 {
31 message = ((MuleEventContext) args[0]).getMessageAsString();
32 }
33 latch.countDown();
34 }
35
36 public String getMessage(long ms) throws InterruptedException
37 {
38 latch.await(ms, TimeUnit.MILLISECONDS);
39 return message;
40 }
41
42 }