<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Implementing a non-flat deployment for Weld Integration
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/flavia.rainone%40jboss.com">Flavia Rainone</a> in <i>JBoss Microcontainer Development POJO Server</i> - <a href="http://community.jboss.org/message/554183#554183">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Making myself clearer.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>Flavia Rainone wrote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-java"><span style="color: navy;"><strong>public</strong></span> BeanDeploymentArchive loadBeanDeploymentArchive(Class&lt;?&gt; beanClass)
&#160;&#160; <span style="color: navy;">{</span>
&#160;&#160;&#160;&#160;&#160; <span style="color: darkgreen;">// collection to mark the archives we have already searched</span>
&#160;&#160;&#160;&#160;&#160; Collection&lt;Archive&gt; searchedArchives = <span style="color: navy;"><strong>new</strong></span> HashSet&lt;Archive&gt;();
&#160;&#160;&#160;&#160;&#160; <span style="color: darkgreen;">// collection to mark the classpaths we have already searched</span>
&#160;&#160;&#160;&#160;&#160; Collection&lt;Classpath&gt; searchedClasspaths = <span style="color: navy;"><strong>new</strong></span> HashSet&lt;Classpath&gt;();
&#160;&#160;&#160;&#160;&#160; <span style="color: darkgreen;">// TODO -- why the search? beanClass' ClassLoader should be mapped to Archive?</span>
&#160;&#160;&#160;&#160;&#160; <span style="color: darkgreen;">// need to throw an IllegalArgumentException if the Archive is not reachable from</span>
&#160;&#160;&#160;&#160;&#160; <span style="color: darkgreen;">// the archives contained in the archives of this deployment</span>
&#160;&#160;&#160;&#160;&#160; Archive archive = findArchive(beanClass, archives, searchedArchives, searchedClasspaths);
&#160;&#160;&#160;&#160;&#160; <span style="color: navy;"><strong>if</strong></span> (archive == <span style="color: navy;"><strong>null</strong></span>)
</code></pre>
<p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p>
</blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Currently, findArchive method, invoked by loadBeanDeploymentArchive as shown above, walks through the Archive graph in order to find an Archive associated with the requested beanClass (i.e., an Archive that is associated with the same ClassLoader that loaded beanClass).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If the Archive is not reachable in the graph, it means that we need to throw IllegalArgumentException.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Ales suggested to replace the findArchive call by a lookup in a ClassLoader -&gt; Archive map. That way, all I would need to do is looking up for the archive that corresponds to the beanClass CL. This is faster than walking through the Archive graph, but I wouldn't be able to know whether the Archive is reachable from the current Deployment or not, so I wouldn't be able to throw the IllegalArgumentException to point that beanClass is not visible to the current Deployment.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Which way should I go? Should I forego the "is beanClass visible to this Deployment" check and follow Ales's suggestion, or should I keep things the way they are?</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/554183#554183">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Microcontainer Development POJO Server at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2116">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>