docs: public static Class[] getParameters(String signature) throws FacesException
      {
          ArrayList<Class> params = new ArrayList<Class>();
          // Signature is of the form
          // <return-type> S <method-name S? '('
          // < <arg-type> ( ',' <arg-type> )* )? ')'
          int start = signature.indexOf('(') + 1;
          boolean lastArg = false;
          while (true)
          {
              int p = signature.indexOf(',', start);
              if (p < 0)
              {
                  p = signature.indexOf(')', start);
                  if (p < 0)
                  {
                      throw new FacesException("Invalid method signature:" + signature);
                  }
                  lastArg = true;
              }
              String arg = signature.substring(start, p).trim();
              if (!"".equals(arg))
              {
                  try
                  {
                      params.add(ClassUtils.javaDefaultTypeToClass(arg));
                  }
                  catch (ClassNotFoundException e)
                  {
                      throw new FacesException("Invalid method signature:" + signature);
                  }
              }
              if (lastArg)
              {
                  break;
              }
              start = p + 1;
          }
          return params.toArray(new Class[params.size()]);
      }