Yes, so I'm back with the unportable WELD optimisation. But on the other hand, this produces method will mean that the application will not suddenly start leaking memory if someone were to add the "wrong kind of dependency" to MyThread at some future date. And the BeanManager usage has been encapsulated inside somewhere it can be reused easily. So I'm calling this a "win" .