private List<URL> getTypeProviderUrls(ClassLoader classLoader, Collection<String> typeProviderPaths) {
        ResourcePatternResolver resourceLoader = new PathMatchingResourcePatternResolver(classLoader);
        List<URL> typeProviderUrls = new ArrayList<>();
        for (String typeProviderPath : typeProviderPaths) {
            try {
                Resource[] resources = resourceLoader.getResources(typeProviderPath);
                if (ArrayUtils.isEmpty(resources)) {
                    logger.info("{} did not match any resources.", typeProviderPath);
                } else {
                    Arrays.stream(resources)
                            .map(this::toUrl)
                            .forEach(typeProviderUrls::add);
                }
            } catch (IOException e) {
                logger.error("Error getting resources using " + typeProviderPath + ", skipping.", e);
            }
        }
        return typeProviderUrls;
    }
@author Woonduk Kang(emeroad)
@author HyunGil Jeong
@author Taejin Koo
commons-server/src/main/java/com/navercorp/pinpoint/common/server/util/ServerTraceMetadataLoaderService.java