This code can cause problems when Camel runs in a container (like WildFly) with CDI.
The code assumes that the camel context will get started and stopped at some point during its lifecycle, which then triggers an unmanage from the Container instance object.
With CDI, this scenario may not happen. Especially when CDI proxies are created for @Injecting camel contexts into beans. The camel context in this scenario is never started or stopped, resulting in this map of contexts filling up with redundant objects.
Not sure what the best way of dealing with this is. It'd be nice to remove the Container.manage code from the DefaultCamelContext default constructor or implement Container in such a way that clients can override its behaviour.