Я пишу серверную программу, которая используется для запуска модульных тестов API (отображение большого количества информации и обеспечение доступа в Интернет для управления /контролировать все это)...
Этот API известен серверу во время компиляции и предоставляется как JAR.
Чтобы иметь возможность сравнивать результаты unit test разных версий API (без перезапуска сервера), Я хочу иметь возможность выгрузить "текущую" версию API, и перезагрузить более новую (или более старую).
Я не хочу использовать URLClassLoader и вызывать каждый
метод по названию
(используя getDeclaredMethod("someMethod")
),
потому что сервер сильно зависит от API, и это будет
сложно "обернуть" каждый вызов метода таким грязным способом.
Я думал: поскольку все интерфейсы всех версий JAR тот же, я не мог это сделать, перезагрузив другую версию из JAR (без этого имени-invokation?).
Примечание. Я использую последние Java SE (6) и Java EE (5).
Если вы думаете, что я пытаюсь достичь, это невозможно, предложите "обходной путь" или другую концепцию.