Итак, по состоянию на вчерашнее утро я не имел ни малейшего представления о том, что OSGi вообще было. OSGi было просто модным словечком, которое я постоянно видел, повторяясь снова и снова, и поэтому я наконец нашел время, чтобы освежить его в памяти.
На самом деле это кажется довольно крутым материалом, поэтому я хотел бы начать с заявления (для протокола), что я ни в коем случае не против OSGi, и это не какой-то вопрос, касающийся OSGi.
В конце концов, похоже, что 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. Это потому, что я не испытываю ничего, кроме крайнего уважения к своим товарищам по SO, и я ищу ответ на архитектурном уровне от некоторых «богов ИТ», которых я вижу здесь каждый день.
Но для тех из вас, кто абсолютно настаивает на том, чтобы вопрос SO был подкреплен некоторым сегментом кода:
int x = 9;
(Спасибо всем, кто может взвесить этот OSGi / Jigsaw / classloader / namespace / JAR, черт возьми!)