private ProtocolInfo readProtocol(InputStream input)
            throws IOException {
        return mapper.readValue(input, ProtocolInfo.class);
    }
Parses the given JSON file, returning the parsed ProtocolInfo. The JSON
format is conveniently and intentionally identical to a serialized
ProtocolInfo object, which is identical to the JSON format used by the
protocol REST service built into the Guacamole web application.

@param input
    An input stream containing JSON describing the forms and parameters
    associated with a protocol supported by Guacamole.

@return
    A new ProtocolInfo object which contains the forms and parameters
    described by the JSON file parsed.

@throws IOException
    If an error occurs while parsing the JSON file.
guacamole-ext/src/main/java/org/apache/guacamole/environment/LocalEnvironment.java