private static Collection getModelClassUrlsForPackages()

in core/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java [137:153]


    private static Collection<URL> getModelClassUrlsForPackages(String packageNames) {
        List<URL> urls = MODEL_URLS_FOR_PACKAGES.get(packageNames);
        if (urls == null) {
            urls = new ArrayList<URL>();
            // add "." to each package name because it's a prefix, not a package name
            ConfigurationBuilder reflectionsConfig = new ConfigurationBuilder();
            Stream.of(StringUtils.split(packageNames, ","))
                .forEach(packageName -> reflectionsConfig.addUrls(ClasspathHelper.forPackage(packageName + ".")));
            Reflections reflections = new Reflections(reflectionsConfig);
            Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Model.class);
            for (Class<?> clazz : classes) {
                urls.add(classToUrl(clazz));
            }
            MODEL_URLS_FOR_PACKAGES.putIfAbsent(packageNames, urls);
        }
        return urls;
    }