OSGi, модульность Java и головоломка

Итак, по состоянию на вчерашнее утро я не имел ни малейшего представления о том, что 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, черт возьми!)

95
задан Charles 5 July 2014 в 04:06
поделиться