<div dir="ltr">Hello,<div><br></div><div>I need to create beans from a portable extension.</div><div>It is not clear to me if every instance of a bean must have an associated instance of CreationalContext or rather one CreationalContext must be used for all instances:</div><div><br></div><div>// Store a CreationalContext per bean instance</div><div>BeanManager manager = ...</div><div>Bean&lt;T&gt; bean = ...</div><div><div><div><div>Context ctx = manager.getContext(bean.getScope());</div></div></div><div><br></div><div>Map&lt;T, CreationalContext&lt;T&gt;&gt; dependents = ...</div></div><div><br></div><div>public T createBean()  {<br></div><div>       CreationalContext&lt;T&gt; cctx = manager.createCreationalContext(bean);<br></div><div>       T instance = ctx.get(bean, cctx);<br></div><div>       dependents.put(instance, cctx);</div><div>       return instance;</div><div>}</div><div><br></div><div>public void destroyBean(T instance) {</div><div><div>       dependents.computeIfPresent(instance, (inst, cctx) -&gt; {</div><div>            bean.destroy(inst, cctx);</div><div>            return null;</div><div>        });</div></div><div>}</div><div><br></div><div>// CDI tracks dependents for me</div><div>BeanManager manager = ...<br></div><div><div>Bean&lt;T&gt; bean = ...</div><div><div>Context ctx = manager.getContext(bean.getScope());<br></div><div>CreationalContext cctx = manager.createCreationalContext(bean);<br></div></div></div><div><br></div><div><div>public T createBean()  {<br></div><div>       T instance = ctx.get(bean, cctx);</div><div>       return instance;<br></div><div>}</div></div><div><br></div><div><div>public void destroyBean(T instance) {</div><div></div></div><div>    bean.destroy(instance, cctx);</div><div>}</div><div><br></div><div>Best Regards,</div><div>Todor</div></div>