Пустой ClassPath.from (classLoader) в Java 11 - PullRequest
0 голосов
/ 09 марта 2020

Я перевожу нашу кодовую базу на использование java 11 (openJDK), и у меня много тестов с powermock и mockito. Тесты используют JSON для создания объектов на основе предоставленного имени класса. Поиск класса выполняется с помощью следующего кода:

        for (final ClassPath.ClassInfo info : ClassPath.from(loader).getTopLevelClasses()) {
            if (info.getName().endsWith("." + pClassName)) {
                return info.getName();
            }
        }
        return null;

Когда я отлаживаю код, Thread.currentThread (). GetContextClassLoader () возвращает enter image description here Но ClassPath.from ( loader) .getTopLevelClasses () содержит 0 элементов. Мои зависимости:

  1. jackson.core 2.10.3
  2. junit 4.13
  3. верный 2.22.1
  4. компилятор 3.8.0
  5. оттенок 3.2.1
  6. powermock 2.0.5
  7. mockito 3.3.0

Я исключил bytebuddy из powermock-api-mockito2 и mockito- ядро, потому что оно уже добавлено в powermock-module-junit4

Конфигурация Surefire:

                <configuration>
                    <useSystemClassLoader>true</useSystemClassLoader>
                    <reuseForks>true</reuseForks>
                    <forkCount>1</forkCount>
                    <argLine>-Xms256m -Xmx2800m -Dmvn.forkNumber=${surefire.forkNumber} -XX:-UseGCOverheadLimit</argLine>
                </configuration>
...