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