Я еще не проверял это, но я верю, что это будет работать. Для каждой настраиваемой области / контекста, которую вы хотите в своем приложении, вам просто нужно добавить этот контекст через расширение при инициализации контейнера:
public void afterBeanDiscovery(@Observes AfterBeanDiscover afterBeanDiscovery, BeanManager beanManager)
{
CustomContext customContext = new CustomContext();
afterBeanDiscovery.addContext(customContext);
beanManager ...
}
Итак, хитрость в том, что вам нужно держать ссылку на этот контекст, чтобы потом, когда вы захотите запустить или остановить его, вы можете. Это было бы что-то вроде:
@Inject
protected HttpRequestLifecycle httpRequestLifecycle;
public void doSomething()
{
startContext();
doStuff();
stopContext();
}
public void startContext()
{
httpRequestContextLifecycle.getHttpRequestContext().activate();
}
Это должно сработать, там не так много документации, поэтому я надеюсь, что это поможет.
Кто-нибудь заинтересован, проверьте источник здесь:
http://github.com/walterjwhite/server.web.application
Walter