@Override
  public ClassName convertFromText(String value, Class<?> targetType, String optionContext) {
    int index = value.indexOf('{');
    if (index < 0) {
      return new ClassName(value);
    } else {
      String className = value.substring(0, index);
      String json = value.substring(index);
      return new ClassName(className, json);
    }
  }
Used by Gfsh command options that converts a string to a ClassName Object

User can specify either a classname alone or a className followed by a "?" and json properties to
initialize the object

e.g. --cache-loader=my.app.CacheLoader
--cache-loader=my.app.CacheLoader?{"param1":"value1","param2":"value2"}

Currently, if you specify a json properties after the className, the class needs to be a
Declarable for it to be initialized, otherwise, the properties are ignored.
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/converters/ClassNameConverter.java