@Override
public void validateField(String name, Object o, ClassLoader classLoader) {
SourceConfig sourceConfig = (SourceConfig) o;
if (sourceConfig.getArchive().startsWith(Utils.BUILTIN)) {
return;
}
String sourceClassName;
try {
sourceClassName = ConnectorUtils.getIOSourceClass(sourceConfig.getArchive());
} catch (IOException e1) {
throw new IllegalArgumentException("Failed to extract source class from archive", e1);
}
Class<?> typeArg = getSourceType(sourceClassName, classLoader);
if (sourceConfig.getSerdeClassName() != null && !sourceConfig.getSerdeClassName().isEmpty()
&& sourceConfig.getSchemaType() != null && !sourceConfig.getSchemaType().isEmpty()) {
throw new IllegalArgumentException("Only one of serdeClassName or schemaType should be set");
}
if (sourceConfig.getSerdeClassName() != null && !sourceConfig.getSerdeClassName().isEmpty()) {
FunctionConfigValidator.validateSerde(sourceConfig.getSerdeClassName(),typeArg, name, classLoader, false);
}
if (sourceConfig.getSchemaType() != null && !sourceConfig.getSchemaType().isEmpty()) {
FunctionConfigValidator.validateSchema(sourceConfig.getSchemaType(), typeArg, name, classLoader, false);
}
}
}