<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
Why don't you import the package ("com.example.thirdpackage") within
your bundle Bundle A too ?<br>
<br>
Regards,<br>
<br>
Charles M.<br>
<br>
On 30/05/15 14:53, Александр Свиридов wrote:<br>
<blockquote cite="mid:1432990387.12789305@f378.i.mail.ru"
type="cite">
<div class="post-text">
<p>I use javase and solution osgi (felix)+cdi(weld)+paxcdi. I
have two bundles A and B. Bundle B is a lib bundle.</p>
<p>In bundle A I have one class and one package.</p>
<pre class="lang-java prettyprint prettyprinted"><code><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">firstpackage</span><span class="pun">;</span><span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">secondpackage</span><span class="pun">.</span><span class="typ">Class2</span><span class="pun">;</span><span class="kwd">public</span><span class="kwd">class</span><span class="typ">Class1</span><span class="pun">{</span><span class="lit">@Inject</span><span class="kwd">private</span><span class="typ">Class2</span><span class="pln"> class2</span><span class="pun">;</span><span class="pun">}</span></code></pre>
<p>In bundle B I have two classes and two packages</p>
<pre class="lang-java prettyprint prettyprinted"><code><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">secondpackage</span><span class="pun">;</span><span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">thirdpackage</span><span class="pun">.</span><span class="typ">Class3</span><span class="pun">;</span><span class="kwd">public</span><span class="kwd">class</span><span class="typ">Class2</span><span class="pun">{</span><span class="lit">@Inject</span><span class="kwd">private</span><span class="typ">Class3</span><span class="pln"> class3</span><span class="pun">;</span><span class="pun">}</span></code></pre>
<p>and</p>
<pre class="lang-java prettyprint prettyprinted"><code><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">thirdpackage</span><span class="pun">;</span><span class="kwd">public</span><span class="kwd">class</span><span class="typ">Class3</span><span class="pun">{</span><span class="pun">....</span><span class="pun">}</span></code></pre>
<p>I install and start both bundles.</p>
<p>The problem - pax (or weld) for injecting in classes of
bundle A scans only those packages which are imported for
classes IN bundle A. In my example - CDI for injecting in
Class1 Class2 will scan com.example.secondpackage of bundle B.
However, it will throw exception as Class2 needs Class3 but
com.example.thirdpackage is not scanned for bundle A (as it's
not imported!!!). com.example.thirdpackage is only scanned for
bundle B but, as I understand every bundles for cdi has its
own scope. How to fix it?</p>
</div>
<br>
<br>
<br>
-- <br>
Александр Свиридов
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
weld-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:weld-dev@lists.jboss.org">weld-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/weld-dev">https://lists.jboss.org/mailman/listinfo/weld-dev</a></pre>
</blockquote>
<br>
</body>
</html>