private static MessageInput<?> lookup(String driverPackage, String typeName, List<String> parserArguments) throws ClassNotFoundException, NoSuchMethodException {
        try {
            Package.getPackage(driverPackage);
        } catch (RuntimeException e) {
            throw new DriverTestsuiteException("Invalid or non existent package detected: " + driverPackage, e);
        }
        String ioRootClassName = driverPackage.replace("-", "") + "." + typeName;
        // make sure both type and it's IO are present
        Class<? extends Message> messageType = (Class<? extends Message>) Class.forName(ioRootClassName);
        Method parseMethod = null;
        for (Method method : messageType.getMethods()) {
            if (Modifier.isStatic(method.getModifiers()) && "staticParse".equals(method.getName()) && Message.class.isAssignableFrom(method.getReturnType())) {
                // because we still have var-arg and non var-arg methods we have to be careful
                // below is additional verification of staticParse method which refuses var-arg variant
                if (method.getParameterCount() == 1) {
                    parseMethod = method;
                    break;
                } else if (method.getParameterCount() >= 2  && method.getParameterTypes()[1] != Object[].class) {
                    // TODO above if statement can be removed later on - when we get rid of var-args
                     parseMethod = method;
                    break;
                }
            }
        }
        if (parseMethod == null) {
            throw new DriverTestsuiteException("Could not find static parse method for " + typeName);
        }
        return new DeferredMessageInput(parseMethod, parserArguments);
    }
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