<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hey guys,<div><br></div><div>I ran into a problem today and I am unsure if the behavior I encountered is the way it should be.</div><div><br></div><div>My Environment:</div><div>JBoss 7.1.1.Final with Weld 1.1.5</div><div><br></div><div>My Scenario:</div><div><br></div><div>------------------------------------------------------------------------------------------------------</div><div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #931a68">public</span> <span style="color: #931a68">abstract</span> <span style="color: #931a68">class</span> AbstractClass <span style="color: #931a68">implements</span> DemoInterface {
}</div></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><div style="margin: 0px; color: rgb(119, 119, 119); ">@Singleton</div><div style="margin: 0px; "><span style="color: #777777">@ConcurrencyManagement</span>(ConcurrencyManagementType.<span style="color: #0326cc">BEAN</span>)</div><div style="margin: 0px; "><span style="color: #931a68">public</span> <span style="color: #931a68">class</span> Real <span style="color: #931a68">extends</span> AbstractClass {
}</div><div style="margin: 0px; "><br></div><div style="margin: 0px; "><div style="margin: 0px; color: rgb(119, 119, 119); ">@Singleton</div><div style="margin: 0px; "><span style="color: #777777">@ConcurrencyManagement</span>(ConcurrencyManagementType.<span style="color: #0326cc">BEAN</span>)</div><div style="margin: 0px; color: rgb(78, 144, 114); "><span style="color: rgb(119, 119, 119); ">@Alternative</span></div><div style="margin: 0px; color: rgb(119, 119, 119); ">@Specializes</div><div style="margin: 0px; "><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: #931a68">public</span> <span style="color: #931a68">class</span> Mock <span style="color: #931a68">extends</span> <span style="color: rgb(0, 0, 0); ">Real</span> {
}</div><div style="color: rgb(119, 119, 119); margin: 0px; "><br></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><br></div><div style="margin: 0px; ">If I register class Mock as an @Alternative in beans.xml, everything works fine.</div><div style="margin: 0px; "><div style="margin: 0px; color: rgb(78, 145, 146); "><span style="color: #009193"><br></span></div><div style="margin: 0px; color: rgb(78, 145, 146); "><span style="color: #009193"><</span>alternatives<span style="color: #009193">></span></div><div style="margin: 0px; "><span class="Apple-tab-span" style="white-space: pre; ">        </span><<span style="color: #4e9192">class</span><span style="color: #009193">></span>at.w0mb.example.Mock<span style="color: #009193"></</span><span style="color: #4e9192">class</span><span style="color: #009193">></span></div><div style="margin: 0px; color: rgb(78, 145, 146); "><span style="color: #009193"></</span>alternatives<span style="color: #009193">></span></div></div><div style="margin: 0px; "><br></div><div style="margin: 0px; ">As soon as I try:</div><div style="color: rgb(119, 119, 119); margin: 0px; "><br></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "><br></span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><div style="margin: 0px; ">@Alternative</div><div style="margin: 0px; ">@Stereotype</div><div style="margin: 0px; ">@Retention<span style="color: #000000">(</span><span style="color: #0326cc">RUNTIME</span><span style="color: #000000">)</span></div><div style="margin: 0px; ">@Target<span style="color: #000000">(</span><span style="color: #0326cc">TYPE</span><span style="color: #000000">)</span></div><div style="margin: 0px; color: rgb(147, 26, 104); ">public<span style="color: #000000"> </span>@interface<span style="color: #000000"> </span><span style="color: #777777">Mock</span><span style="color: #000000"> {}</span></div><div style="margin: 0px; color: rgb(147, 26, 104); "><span style="color: #000000"><br></span></div></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "><br></span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><div style="margin: 0px; ">@Singleton</div><div style="margin: 0px; ">@ConcurrencyManagement(ConcurrencyManagementType.<span style="color: #0326cc">BEAN</span>)</div><div style="margin: 0px; ">@Mock</div><div style="margin: 0px; color: rgb(78, 144, 114); ">//@Alternative</div><div style="margin: 0px; ">@Specializes</div><div style="margin: 0px; "><span style="color: #931a68">public</span> <span style="color: #931a68">class</span> Mock <span style="color: #931a68">extends</span> Real <span style="color: rgb(0, 0, 0); ">{
}</span></div></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "><br></span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">------</span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; "><br></span></div><div style="color: rgb(119, 119, 119); margin: 0px; "><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; ">If I now register the @Stereotype Mock as an @Alternative in beans.xml, the application won΄t deploy.</span></div><div style="margin: 0px; "><div style="color: rgb(78, 145, 146); margin: 0px; "><span style="color: #009193"><</span>alternatives<span style="color: #009193">></span></div><div style="margin: 0px; "><span class="Apple-tab-span" style="white-space: pre; ">        </span><<span style="color: rgb(78, 145, 146); ">stereotype</span><span style="color: rgb(0, 145, 147); ">></span>at.w0mb.example.stereotype.Mock<span style="color: rgb(0, 145, 147); "></</span><span style="color: rgb(78, 145, 146); ">stereotype</span><span style="color: rgb(0, 145, 147); ">></span></div><div style="color: rgb(78, 145, 146); margin: 0px; "><span style="color: #009193"></</span>alternatives<span style="color: #009193">></span></div><div style="color: rgb(78, 145, 146); margin: 0px; "><span style="color: #009193"><br></span></div><div style="margin: 0px; ">The thrown error message is:</div><div style="margin: 0px; "><div style="margin: 0px; "><span class="Apple-tab-span" style="white-space:pre">        </span>WELD-001408 Unsatisfied dependencies for type [DemoInterface]
.</div><div style="margin: 0px; "><br></div><div style="margin: 0px; "><br></div><div style="margin: 0px; ">Do you guys think that this is normal? Is it a specification Issue? Or Weld?</div><div style="margin: 0px; "><br></div><div style="margin: 0px; ">Regards,</div><div style="margin: 0px; "><br></div><div style="margin: 0px; ">Daniel</div></div></div></div></div></div></body></html>