Плагин sonarqube: javacustom classloader предотвращает выполнение правила xml
Мне нужен плагин сонара для анализа родительских классов каждого класса Java моего проекта. Итак, я начал с этого примера, представленного в документации Sonar.
Все было в порядке, пока я не хотел получить родительский класс: выражение
tree.superClass().symbolType() instanceof ClassJavaType
возвращает false, но в отладчике я вижу, что он относится к этому типу. Проблема в том, что загрузчик классов класса symbolType - это "java", а загрузчик классов моего ClassJavaType - "javacustom" (ключ для моего плагина).
Я использовал обходной путь, вызвав объявленный метод getSuperType путем отражения и проверив типы с помощью getClass(). GetName(). Equals(...) вместо instanceof.
Но эта несовместимость classpath вызывает другую проблему в моем проекте. Я попытался создать правило XML (расширяя плагин Java, потому что он может сканировать и XML-файлы). Но мое правило никогда не выполняется, потому что XmlAnalyzer не распознает мой класс как экземпляр XmlCheck (по той же причине, что и несвязанные загрузчики классов), и не выполняет мое правило.
Итак, мой вопрос: есть ли способ избежать этой проблемы? Если нет, то официальный пример расширения плагина кажется ошибочным...