public int readExternalizableMap(DataInput in, Map<String, ? extends Externalizable> map, ClassLoader loader) throws IOException {
        return strategy.readExternalizableMap(in, map, loader);
    }
Reads a Map of String key and value pairs. This method will return
{@code null} if the Map written to the stream was {@code null}.

@param in the input stream.
@param map a Map of String key and Externalizable value pairs.
@param loader class loader to use to build elements inside of the serialized collection.
@throws IOException if an error occurs.
@return the number of elements added to the collection.
xmppserver/src/main/java/org/jivesoftware/util/cache/ExternalizableUtil.java