I think it's ok to keep a reference to a
BeanManagerin an extension instance. However, beware of static fields - such a
BeanManagerinstance could potentially survive the shutdown of a container it comes from. And in such case, it should become unusable as its state should be cleaned up. If you only use one container at the same time then
WeldContainer.current().getBeanManager()is probably the most efficient way to obtain a BeanManager.