code: public static void dumpConfiguration(Configuration config,
        Writer out) throws IOException {
      JsonFactory dumpFactory = new JsonFactory();
      JsonGenerator dumpGenerator = dumpFactory.createJsonGenerator(out);
      dumpGenerator.writeStartObject();
      dumpGenerator.writeFieldName("properties");
      dumpGenerator.writeStartArray();
      dumpGenerator.flush();
      synchronized (config) {
        for (Map.Entry<Object,Object> item: config.getProps().entrySet()) {
          dumpGenerator.writeStartObject();
          dumpGenerator.writeStringField("key", (String) item.getKey());
          dumpGenerator.writeStringField("value",
                                         config.get((String) item.getKey()));
          dumpGenerator.writeBooleanField("isFinal",
                                          config.finalParameters.contains(item.getKey()));
          dumpGenerator.writeStringField("resource",
                                         config.updatingResource.get(item.getKey()));
          dumpGenerator.writeEndObject();
        }
      }
      dumpGenerator.writeEndArray();
      dumpGenerator.writeEndObject();
      dumpGenerator.flush();
    }
docs: Writes out all the parameters and their properties (final and resource) to
  the given {@link Writer}
  The format of the output would be
  { "properties" : [ {key1,value1,key1.isFinal,key1.resource}, {key2,value2,
  key2.isFinal,key2.resource}... ] }
  It does not output the parameters of the configuration object which is
  loaded from an input stream.
  @param out the Writer to write to
  @throws IOException