default void probe(String rawProbeConfiguration, String rawPolicyConfiguration, ProbeContext probeContext, IPolicyContext policyContext,
                       IAsyncResultHandler<IPolicyProbeResponse> resultHandler) {
        try {
            P probeConfig = mapper.readValue(rawProbeConfiguration, getProbeRequestClass());
            C policyConfig = mapper.readValue(rawPolicyConfiguration, getConfigurationClass());
            probe(probeConfig, policyConfig, probeContext, policyContext, resultHandler);
        } catch (Exception e) {
            throw new ConfigurationParseException(e);
        }
    }
This version uses Jackson to parse the probe configuration into the class specified by
{@link #getProbeRequestClass()}, and the policy config specified by {@link #getConfigurationClass()}.
<p>
Most implementors should override the abstract
{@link #probe(IPolicyProbeRequest, Object, ProbeContext, IPolicyContext, IAsyncResultHandler)}  method rather than this one,
unless they are doing something more exotic (e.g. not using JSON).
gateway/engine/core/src/main/java/io/apiman/gateway/engine/policy/IPolicyProbe.java