Мне нужна некоторая точность в отношении поведения ServletContextHelper, связанного со спецификацией Http Whiteboard, когда несколько пакетов используют один и тот же ServletContextHelper.
Спецификация говорит:
Реализация Http Whiteboard должна создать отдельный экземпляр ServletContext для каждой службы ServletContextHelper. Службы интерактивной доски можно связать с помощником контекста сервлета с помощью свойства osgi.http.whiteboard.context.select. Если это свойство не установлено, используется вспомогательная функция контекста сервлета по умолчанию.
Если я правильно понимаю, все сервлеты или фильтры, использующие одну и ту же ссылку ServletContextHelper, привязаны к одному и тому же «ServletContext».
Затем :
Некоторые реализации ServletContextHelper могут быть реализованы с использованием Service Factory, например, для предоставления ресурсов из связанного пакета, как это делает реализация по умолчанию. Поэтому реализация доски должна получить помощник контекста сервлета, используя контекст пакета пакета, в котором зарегистрирована служба доски.
Таким образом, если пакет A регистрирует сервлет с помощью ServletContextHelper X, а пакет B регистрирует фильтр с той же ссылкой на ServletContextHelper, то сервлет и фильтр регистрируются в одном и том же ServletContext, но их методы инициализации вызываются с двумя разными экземплярами ServletContext (чтобы реализовать методы getClassLoader() по-разному)?
Более того, каково поведение ServletContextHelper по умолчанию? всегда ли зарегистрирован ServletContextHelper по умолчанию? он распределяется между пакетами или есть только один экземпляр в пакетах?