@SuppressWarnings("unchecked")
    private static MessageInput<?> getMessageIOType(Map<String, String> options, String typeName, List<String> parserArguments) throws DriverTestsuiteException, ClassNotFoundException {
        String extraMessage = "";
        if (options.containsKey("package")) {
            try {
                return lookup(options.get("package"), typeName, parserArguments);
            } catch (NoSuchMethodException e) {
                extraMessage = "custom package '" + options.get("package") + "' and ";
            }
        }

        String protocolName = options.get("protocolName");
        String outputFlavor = options.get("outputFlavor");
        String classPackage = String.format("org.apache.plc4x.java.%s.%s", protocolName, StringUtils.replace(outputFlavor, "-", ""));
        try {
            return lookup(classPackage, typeName, parserArguments);
        } catch (NoSuchMethodException e) {
            throw new DriverTestsuiteException("Could not find " + typeName + " in " + extraMessage + "standard package '" + classPackage + "'");
        }
    }
Returns the messageIO class based on a configured package. convention out of {@code protocolName} {@code outputFlavor} and {@code name}.
If this fails its tries a fallback using the deprecated attribute {@code className}

@param options Test framework options
@param name    name of the message
@param parserArguments the parser arguments to create an instance of the message
@return the found MessageIO
@throws DriverTestsuiteException if a MessageIO couldn't be found.
plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/migration/MessageResolver.java