Итак, со вчерашнего утра я понятия не имел, что такое OSGi. OSGi было просто каким-то модным словом, которое я все время замечал, появляясь снова и снова, и поэтому я наконец выделил некоторое время, чтобы освежить его.
На самом деле это выглядит довольно круто,поэтому я хотел бы начать с заявления (для протокола), что я не против OSGi ни в каком отношении, и при этом это не какой-то вопрос «OSGi-bashing».
В концеСегодня кажется, что OSGi - по существу - обратилась к JSR 277 в модульности Java, которая признала, что существуют недостатки в спецификации файла JAR
, которые могут приводить к проблемам с разрешением пространства имен и загрузке классов в определенных угловых случаях.OSGi также делает много других действительно крутых вещей, но, насколько я могу убедиться, это ее самая большая ничья (или одна из них).
Для меня - как довольно новая (несколько лет назад) Java EEразработчик, это просто ошеломляет, что мы находимся в 2011 году и в настоящее время живем в эпоху Java 7, и что эти проблемы с загрузкой классов все еще присутствуют;особенно в корпоративных средах, где на одном сервере приложений могут быть сотни JAR-файлов, причем многие из них зависят от разных версий друг друга, и все они работают (более или менее) одновременно.
Мой вопрос:
Как бы я ни интересовался OSGi, и сколько бы я не хотел узнать об этом, чтобы посмотреть, где / если это может быть полезно для моих проектов, у меня просто нет временисядьте и изучите что-то такое большое, по крайней мере, сейчас.
Так что же делать разработчикам, не являющимся OSGi, когда возникают эти проблемы? Что Java (Oracle / Sun/ JCP) решения в настоящее время существуют, если таковые имеются?Почему Jigsaw вырезали из J7?Насколько уверено сообщество, которое Jigsaw будет внедрено в следующем году в J8?Можно ли получить Jigsaw для вашего проекта, хотя он еще не является частью платформы Java?
Я предполагаю, что я спрашиваю здесь, это сочетание паники, интриги и лицевой стороны лица.Теперь, когда я наконец-то понял, что такое OSGi, я просто «не понимаю», как что-то вроде Jigsaw потребовалось более 20 лет, чтобы понять, как это можно было сделать из релиза. Это просто кажется фундаментальным.
И, как разработчик, мне также любопытно, какие у меня решения, без OSGi.
Кроме того, Примечание : Я знаю, что это не вопрос типа " чистое программирование ", но прежде чем кто-то из вас изогнет нос, я хотел сказать (опять же, для записи), что ясознательно поставить этот вопрос на SO.Это потому, что я испытываю только огромное уважение к своим коллегам-SOER, и я ищу ответ на уровне архитектуры от некоторых «Богов ИТ», которых я вижу здесь каждый день.
Но,для тех из вас, кто настаивает на том, чтобы вопрос SO был поддержан некоторым сегментом кода:
int x = 9;
(Спасибо всем, кто может взвесить этот OSGi / Jigsaw / classloader /namespace / JAR, черт возьми!)