public static void run(String resolverPath,
                         String optionalDefault,
                         String typeRefPropertiesExcludeList,
                         boolean overrideNamespace,
                         String targetDirectoryPath,
                         String[] sources) throws IOException
  {
    final AvroSchemaGenerator generator = new AvroSchemaGenerator(new Config(resolverPath));

    if (optionalDefault != null)
    {
      final OptionalDefaultMode optionalDefaultMode = OptionalDefaultMode.valueOf(optionalDefault.toUpperCase());
      generator.getDataToAvroSchemaTranslationOptions().setOptionalDefaultMode(optionalDefaultMode);
    }
    generator.getDataToAvroSchemaTranslationOptions().setOverrideNamespace(overrideNamespace);

    if (null != typeRefPropertiesExcludeList)
    {
      generator.getDataToAvroSchemaTranslationOptions().setTyperefPropertiesExcludeSet(
          Arrays.stream(typeRefPropertiesExcludeList.split(","))
              .map(String::trim)
              .collect(Collectors.toSet()));
    }

    if (overrideNamespace)
    {
      targetDirectoryPath += "/" + AVRO_PREFIX;
    }
    generator.generate(targetDirectoryPath, sources);
  }
@Test(dataProvider = "toAvroSchemaData")
  public void testFullNameAsArgsWithJarInPath(Map<String, String> testSchemas, Map<String, String> expectedAvroSchemas, List<String> paths, boolean override) throws IOException
  {
    Map<File, Map.Entry<String,String>>  files = TestUtil.createSchemaFiles(_testDir, testSchemas, _debug);
    // jar files in path, create jar files
    Collection<String> testPaths = createJarsFromRelativePaths(_testDir, testSchemas, paths, _debug);

    // test source is a fully qualified name
    File targetDir = setup(testPaths, override);
    for (Map.Entry<File, Map.Entry<String, String>> entry : files.entrySet())
    {
      String schemaText = entry.getValue().getValue();
      String schemaName = schemaFullName(schemaText);
      if (_debug) out.println("test name " + schemaName);
      String args[] = { targetDir.getCanonicalPath(), schemaName };
      run(args, entry, targetDir, expectedAvroSchemas);
    }
  }