title: Multiple @ServiceActivator methods with the same inputChannel and different signature
body: <p>I'm trying to implement an annotation driven event bus (e.g. <a href="https://github.com/google/guava/wiki/EventBusExplained" rel="nofollow">Guava Event Bus</a>) using spring integration.
  I have a <em>PublishSubscribeChannel</em> where I publish my events and the idea is to use methods annotated with <em>@ServiceActivator</em> as event handlers.
  Each method can have a different signature based on the event (payload) they need to handle.</p>
  
  <p>What I noticed is that when an event is published, <strong>all</strong> instances of <em>ServiceActivatingHandler</em> created by the <em>ServiceActivatorAnnotationPostProcessor</em> are called and an exception for each method that has a signature that does not match the payload. E.g. </p>
  
  <pre><code>Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 8): Method call: Method handle(model.api.ServiceAvailableEvent) cannot be found on service.eai.TestServiceActivatorImpl2 type
  </code></pre>
  
  <p>Is there a way to define a <em>@ServiceActivator</em> method only for specific payload types?</p>