docs: public static void validateLifeCycleSignature(String lifeCycle, Method m, boolean beanClass)
                      throws InjectionConfigurationException
      {
          // Get the modifiers for the interceptor method and verify that it
          // is neither final nor static as required by EJB specification.
          int mod = m.getModifiers();
          if (Modifier.isFinal(mod) || Modifier.isStatic(mod))
          {
              // CNTR0229E: The {0} interceptor method must not be declared as final or static.
              String method = m.toGenericString();
              Tr.error(tc, "INVALID_INTERCEPTOR_METHOD_MODIFIER_CNTR0229E", method);
              throw new InjectionConfigurationException(lifeCycle + " interceptor \"" + method
                                                        + "\" must not be declared as final or static.");
          }
  
          // Verify return type is void.
          Class<?> returnType = m.getReturnType();
          if (returnType == java.lang.Void.TYPE)
          {
              // Return type is void as required.
          }
          else
          {
              // CNTR0231E: The {0} method signature is not valid as
              // a {1} method of an enterprise bean class.
              String method = m.toGenericString();
              Tr.error(tc, "INVALID_LIFECYCLE_SIGNATURE_CNTR0231E", method, lifeCycle);
              throw new InjectionConfigurationException(lifeCycle + " interceptor \"" + method
                                                        + "\" must have void as return type.");
          }
  
          // Verify method does not have a throws clause since lifecycle methods not allowed
          // to throw checked exceptions.
          Class<?>[] exceptionTypes = m.getExceptionTypes();
  
          // d629675 - The spec requires that lifecycle interceptor methods do not
          // have a throws clause, but we keep this checking for compatibility with
          // previous releases.
          if (exceptionTypes.length != 0)
          {
              // CNTR0231E: The {1} method specifies the {0} method signature of the
              // lifecycle interceptor, which is not correct for an enterprise bean.
              String method = m.toGenericString();
              Tr.error(tc, "INVALID_LIFECYCLE_SIGNATURE_CNTR0231E", lifeCycle, method);
              throw new InjectionConfigurationException(lifeCycle + " interceptor \"" + method
                                                        + "\" must not throw application exceptions.");
          }
  
          // Now verify method parameter types.
          Class<?>[] parmTypes = m.getParameterTypes();
          if (beanClass)
          {
              // This is bean class, so interceptor should have no parameters.
              if (parmTypes.length != 0)
              {
                  // CNTR0231E: "{0}" interceptor method "{1}" signature is incorrect.
                  String method = m.toGenericString();
                  Tr.error(tc, "INVALID_LIFECYCLE_SIGNATURE_CNTR0231E", lifeCycle, method);
                  throw new InjectionConfigurationException(lifeCycle + " interceptor \"" + method
                                                            + "\" must have zero parameters.");
              }
          }
          else
          {
              // This is an interceptor class, so InvocationContext is a required parameter
              // for the interceptor method.
              if ((parmTypes.length == 1))//&& ( parmTypes[0].equals(InvocationContext.class) ) )
              {
                  // Has correct signature of 1 parameter of type InvocationContext
              }
              else
              {
                  // CNTR0232E: The {0} method does not have the required
                  // method signature for a {1} method of a interceptor class.
                  String method = m.toGenericString();
                  Tr.error(tc, "INVALID_LIFECYCLE_SIGNATURE_CNTR0232E", method, lifeCycle);
                  throw new InjectionConfigurationException("CNTR0232E: The \"" + method
                                                            + "\" method does not have the required method signature for a \""
                                                            + lifeCycle + "\" method of a interceptor class.");
              }
          }
      }