Reports incorrect <lookup-method> for a bean in XML application contexts.

Example:


  public abstract class FooLookupBean {
    protected abstract FooBean createCommand();
    private FooBean createCommand() {...}
    protected static FooBean createCommandStatic() {...}
    protected abstract FooBean createWithArgs(String foo);
    protected abstract OtherBean createOtherBean();
  }
  

  <beans>
    <bean class="FooLookupBean" id="lookupTest">
      <lookup-method bean="fooBean" name="createCommand"/>
      <!-- private -->
      <lookup-method bean="fooBean" name="createCommand"/> <!-- "Method must be public or protected" -->
      <!-- static -->
      <lookup-method bean="fooBean" name="createCommandStatic"/> <!-- Static method not allowed here -->
      <!-- with arguments -->
      <lookup-method bean="fooBean" name="createWithArgs"/> <!-- Method must have no parameters -->
      <!-- not exist -->
      <lookup-method bean="fooBean" name="unknown"/> <!-- unknown method -->
      <!-- mismatch -->
      <lookup-method bean="fooBean" name="createOtherBean"/> <!-- Lookup method return type does not match the 'FooBean' bean class -->
    </bean>

    <bean class="FooBean" id="fooBean"/>
    <bean class="OtherBean" id="otherBean"/>
  </beans>