code: @Override
      protected void configure()
      {
          bindListener( getTypeMatcher(), new AbstractMethodTypeListener( getAnnotationType() )
          {
  
              @Override
              protected <I> void hear( final Method method, TypeEncounter<I> encounter )
              {
                  encounter.register( new InjectionListener<I>()
                  {
  
                      public void afterInjection( I injectee )
                      {
                          try
                          {
                              method.invoke( injectee );
                          }
                          catch ( IllegalArgumentException e )
                          {
                              // should not happen, anyway...
                              throw new ProvisionException( format( "Method @%s %s requires arguments",
                                                                    getAnnotationType().getName(),
                                                                    method ), e );
                          }
                          catch ( IllegalAccessException e )
                          {
                              throw new ProvisionException( format( "Impossible to access to @%s %s on %s",
                                                                    getAnnotationType().getName(),
                                                                    method,
                                                                    injectee ), e );
                          }
                          catch ( InvocationTargetException e )
                          {
                              throw new ProvisionException( format( "An error occurred while invoking @%s %s on %s",
                                                                    getAnnotationType().getName(),
                                                                    method,
                                                                    injectee ), e.getTargetException() );
                          }
                      }
  
                  } );
              }
  
          } );
      }
docs: {@inheritDoc}