<!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;">
    Re: How to stop my WAR loading JBoss's provided 3rd party classes?
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/hostalp">Petr H</a> in <i>JBoss Microcontainer</i> - <a href="http://community.jboss.org/message/578782#578782">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><blockquote class="jive-quote"><p>You are controlling this by the before-filter config.</p><p>If it's AFTER_BUT_JAVA_ONLY then it's the same as what you get with parent-first=false.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>jb-cl-domain.xml is by default java-se compliant, meaning parent-first=true.</p><p>It could be debated what should be the default, but I think this is more natural.</p></blockquote><p> before-filter? Didn't you mean parent-policy instead? Because what could be simply done is:</p><p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br/>&lt;classloading-domain xmlns="urn:jboss:classloading-domain:1.0" name="jboss.j2ee:extension=LoaderRepository,service=EARDeployment,url=&amp;apos;ibs.ear&amp;apos;" parent-domain="DefaultDomain"&gt;<br/> &lt;parent-policy name="AFTER_BUT_JAVA_BEFORE"&gt;<br/>&#160; &lt;before-filter&gt;<br/>&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.plugins.filter.NegatingClassFilter"&gt;<br/>&#160;&#160;&#160; &lt;constructor&gt;<br/>&#160;&#160;&#160;&#160; &lt;parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.spi.filter.RecursivePackageClassFilter"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;constructor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;parameter&gt;org.hibernate&lt;/parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;/constructor&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/javabean&gt;<br/>&#160;&#160;&#160;&#160; &lt;/parameter&gt;<br/>&#160;&#160;&#160; &lt;/constructor&gt;<br/>&#160;&#160; &lt;/javabean--&gt;<br/>&#160; &lt;/before-filter&gt;<br/>&#160; &lt;after-filter&gt;<br/>&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.plugins.filter.NegatingClassFilter"&gt;<br/>&#160;&#160;&#160; &lt;constructor&gt;<br/>&#160;&#160;&#160;&#160; &lt;parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.spi.filter.RecursivePackageClassFilter"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;constructor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;parameter&gt;org.hibernate&lt;/parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;/constructor&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/javabean&gt;<br/>&#160;&#160;&#160;&#160; &lt;/parameter&gt;<br/>&#160;&#160;&#160; &lt;/constructor&gt;<br/>&#160;&#160; &lt;/javabean&gt;<br/>&#160; &lt;/after-filter&gt;<br/> &lt;/parent-policy&gt;<br/>&lt;/classloading-domain&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>but then only parent policy is set to AFTER_BUT_JAVA_BEFORE and additional filters have no effect.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Equivalent to AFTER_BUT_JAVA_BEFORE parent policy via filters would be that already posted:</p><p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br/>&lt;classloading-domain xmlns="urn:jboss:classloading-domain:1.0" name="jboss.j2ee:extension=LoaderRepository,service=EARDeployment,url=&amp;apos;myapp.ear&amp;apos;" parent-domain="DefaultDomain"&gt;<br/> &lt;parent-policy&gt;<br/>&#160; &lt;before-filter&gt;<br/>&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.plugins.filter.JavaOnlyClassFilter" /&gt;<br/>&#160; &lt;/before-filter&gt;<br/>&#160; &lt;after-filter&gt;<br/>&#160;&#160; &lt;javabean xmlns="urn:jboss:javabean:2.0" class="org.jboss.classloader.plugins.filter.EverythingClassFilter" /&gt;<br/>&#160; &lt;/after-filter&gt;<br/> &lt;/parent-policy&gt;<br/>&lt;/classloading-domain&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>but that of course doesn't work because of private constructors (and even if it would work it wouldn't be of much help when multiple filters can't be specified in each (before/after) section).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>As a quick solution I've currently removed the hibernate-validator-legacy.jar from JBoss libs which got us further, but I'll try to look at some solution with combining filters. but generally I was hoping that this jboss-classloading-domain.xml approach would bring an easy solution right away - at least for this case which is probably to be used most - I believe.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>And yes, I too think that parent-first is more natural, but the weirdness here is that "plain default" is false while adding classloading config turns it automatically into true. Then if you want to use filters the previous behavior changes significantly just because of that. The optimal target would be either to allow for multiple filters directly, or at least alllow change the parent-first state and let filters work over it.</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/578782#578782">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Microcontainer at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2114">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


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

</div>

</body>
</html>