Мне было интересно, есть ли способ выбрать разные версии одной и той же банки во время выполнения.Я надеюсь избежать использования профилей Maven, так как это будет выбор во время сборки.
Допустим, есть две версии одной и той же банки:
greatFeature_version_A.jar
greatFeature_version_B.jar
Моя первоначальная идея состояла в том, чтобы использовать JMX для создания основного переключателя времени выполнения, выбирающего между этими двумя jar-файлами, которые оба включены в classpath.Кроме того, содержимое двух jar-файлов одинаково (нет версий или разных имен внутренних классов).
Итак, когда запрашивается класс, скажем, из version_A, загрузчик классов всегда выбирает первыйон находит, независимо от того, к какой банке он принадлежит.
Я думаю, что таким способом невозможно добиться эффективного переключения во время выполнения.Мне было интересно, если кто-то может испытать нечто подобное и рекомендовать обходной путь.Я также надеюсь избежать написания пользовательского загрузчика классов, если это возможно.
Большое спасибо!
PS Другие связанные вопросы по SO указывают на загрузчики пользовательских классов, такие как this one.