Custom qualifiers on interface doesn't work on injection
<p><strong>The Problem:</strong></p>

<p>Hello i'm having a problem on java EE , i have to use annotation like @Inject @Stateless etcetc, but i can't get a solution, after reading a lot of documentation and example etcetc it seems that what i 've code should work but definitly not. So the problem is that i have a custom qualifiers on an interface like this</p>

<pre><code> @Qualifier
 @Retention(RUNTIME)
 @Target({METHOD, FIELD, PARAMETER, TYPE})
 public @interface BudgetsDs {
 }
</code></pre>

<p>and i want inject it in another object as a member field like this </p>

<pre><code>@Dependent
public class BudgetService  {

@BudgetsDs
@Inject
DataSource budgetsDS;

... some getter, setter , etcetc...

}
</code></pre>

<p>i've pass through this </p>

<p><a href="https://docs.oracle.com/javaee/6/tutorial/doc/gjbck.html" rel="nofollow">https://docs.oracle.com/javaee/6/tutorial/doc/gjbck.html</a></p>

<p>and other kind of documentation similar to this one.
I'v tried with @EJB , @Stateless but it doesn't work.
I think that i'm currently missing a big thing on the annotation,
so if you have good tutorials , or good advice, or explanation i want to hear them.
I don't ask for a complete answer but i would like to have at least some clue.
Anyone is welcome to help.</p>

<p><strong>Edit:</strong>
<strong>the exact error is on the line</strong></p>

<pre><code>@BudgetsDs
@Inject
DataSource budgetsDS;
</code></pre>

<p>budgetDS throw Unsatisfied Dependency: no bean matches the injection point</p>

<p><strong>Edit2</strong>: <strong>The solution</strong> </p>

<p><strong>1)</strong> I'v implemented a new class ResourceProducer 
As suggested by John Ament
i use @Produces and @Resource(name="jdbc/myDataSource"),
for each DataSource that i need.</p>

<pre><code>public class ResourceProducer {

@Produces
@BudgetsDs
@Resource(name="jdbc/BudgetsDs")
public DataSource budgetsDs;

@Produces
@OtherDs
@Resource(name="jdbc/OtherDs")
public DataSource otherDs;

...  

}
</code></pre>

<p><strong>2)</strong> The different custom qualifier for every connection</p>

<pre><code> // In a file 
 @Qualifier
 @Retention(RUNTIME)
 @Target({METHOD, FIELD, PARAMETER, TYPE})
 public @interface BudgetsDs {
 }

 // In a another file
 @Qualifier
 @Retention(RUNTIME)
 @Target({METHOD, FIELD, PARAMETER, TYPE})
 public @interface OtherDs {
 }
</code></pre>

<p><strong>3)</strong> This way the inject works well and i can inject the different DataSource where i want, like this :</p>

<pre><code>@Dependent
public class BudgetService  {

@BudgetsDs
@Inject
DataSource budgetsDS;

@OtherDs
@Inject
DataSource otherDs;
... some getter, setter , etcetc...

}
</code></pre>

<p>There is another solution Below, that works too.</p>

<p>Thanks to aribeiro and John Ament.
My first question on stack overflow, and really well answered by the community</p>