расширить импорт военных пакетов в контейнере Gemini

если я разверну war-файл в контейнере gemini (например, у virgo есть один), он будет преобразован на лету в пакет osgi путем добавления некоторых импортов пакетов (помимо прочего). Можно ли как-то расширить этот импорт пакетов по умолчанию, используя, например, прослушиватель пакетов или что-то в этом роде? С Уважением


person wrm    schedule 25.07.2012    source источник


Ответы (1)


Я настоятельно рекомендую вам выполнить преобразование самостоятельно перед развертыванием в контейнере Gemini, а не заставлять Gemini выполнять преобразование на лету. Во-первых, это очень легко сделать; во-вторых, развертывание будет намного быстрее; в-третьих, вы сможете добавить конкретный импорт, который вы хотите.

Чтобы превратить стандартный файл WAR в WAB (пакет веб-приложений), который остается совместимым с традиционным развертыванием WAR, вам просто нужно добавить следующие заголовки в MANIFEST.MF файла WAR:

  • Web-ContextPath для определения контекстного пути, в котором будет обслуживаться веб-приложение.
  • Установите Bundle-ClassPath на WEB-INF/classes плюс все файлы JAR под WEB-INF/lib. Вам нужно будет указать их явно, например: Bundle-ClassPath: WEB-INF/classes,WEB-INF/lib/a.jar,WEB-INF/lib/b.jar...
  • Import-Package: javax.servlet,javax.servlet.http плюс все, что вы хотите импортировать.
person Neil Bartlett    schedule 25.07.2012
comment
я знаю, как преобразовать войну и так далее, но я хочу знать, как изменить поведение по умолчанию, потому что я хочу написать своего рода расширение для среды Близнецов... поэтому я хочу изменить развернутые войны общим образом. .. - person wrm; 25.07.2012
comment
Извините, я не понимаю, почему вы хотите сделать это вместо преобразования заранее. - person Neil Bartlett; 25.07.2012
comment
потому что я не разрабатываю и не развертываю эти войны, и я добавляю некоторый код во время компиляции в эти войны, и я хочу, чтобы он был прозрачным, поэтому я не хочу, чтобы разработчик что-либо менял в своем пакете.... - person wrm; 25.07.2012
comment
Если вы внедряете код в WAR, то почему бы не добавить пару заголовков MANIFEST.MF? - person Neil Bartlett; 25.07.2012
comment
я не хотел этого делать, потому что войнам обычно не нужен manifest.mf, и я хочу быть максимально прозрачным... то есть я не хотел ничего предполагать (например, у WAB есть заголовок, у WAR на самом деле нет заголовок, могу ли я даже предположить, что информация OSGI-Header будет учитываться в WAR-манифесте?) Хотя после исследования я нашел возможное решение с использованием хуков равноденствия (да, это, очевидно, зависит от равноденствия ;D). EclEmma делает это с тем же намерением. - person wrm; 26.07.2012