<!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">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;">
    ClassPool bootstrap refactoring
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/kabir.khan%40jboss.com">Kabir Khan</a> in <i>JBoss Microcontainer Development</i> - <a href="http://community.jboss.org/message/542584#542584">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>IRC discussion</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><div id="I7UCCSPOS2"><a class="jive-link-anchor-small">kkhan</a>:ping <a class="jive-link-anchor-small">ALR</a></div>
<div id="DK9V3Q0QOS2">[14:24]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Hey</div>
<div id="XHJGFC1QOS2">[14:24]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Regarding my bootstrap stuff I think you're right</div>
<div>[14:24] <a class="jive-link-anchor-small">ggear</a> joined the chat room.</div>
<div>[14:24] <a class="jive-link-anchor-small">ggear</a> was granted voice by <a class="jive-link-anchor-small">ChanServ</a>.</div>
<div id="POLH9O1QOS2">[14:25]<a class="jive-link-anchor-small">kkhan</a>:too many dependencies on classpools and other stuuff</div>
<div id="AUDMBP1QOS2">[14:25]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Yup, saw your post.</div>
<div id="TIE92K2QOS2">[14:25]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Are you ok with me adding the correct hooks for events where I need them, or do you prefer doing so yourself</div>
<div id="S4OJ1K2QOS2">[14:25]<a class="jive-link-anchor-small">ALR</a>:Also we should be making sure all commits/features get testied</div>
<div id="U8AUGC3QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Sure, you can add them.&#160; I'll give some opinions and help guide as you need.</div>
<div id="E0KXDJ3QOS2">[14:26]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Yeah, what I had wasn't really meant to be committed, it was more a basis for further instructions</div>
<div id="VYPTLQ3QOS2">[14:26]<a class="jive-link-anchor-small">kkhan</a>:*further discussion</div>
<div id="HMZNDX3QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Ah OK.&#160; I put it in to facilitate testing</div>
<div id="ZSDF554QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>:But hadn't really planned on releasing like that</div>
<div id="DS66HE4QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: I'll reply to your post, but also</div>
<div id="J2OHEF4QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>::</div>
<div id="JC3CBR4QOS2">[14:26]<a class="jive-link-anchor-small">ALR</a>:I got that ClassLoading SPI test passing</div>
<div id="SGQJI05QOS2">[14:27]<a class="jive-link-anchor-small">kkhan</a>:ok cool</div>
<div id="CPDL1G5QOS2">[14:27]<a class="jive-link-anchor-small">ALR</a>:Let's see what events you need:</div>
<div id="XYVRFN5QOS2">[14:27]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: It probably makes sense to rever what I had done to get rid of all the deps</div>
<div id="NTWP6W5QOS2">[14:27]<a class="jive-link-anchor-small">kkhan</a>:and then do it properly</div>
<div id="MTZLGM6QOS2">[14:27]<a class="jive-link-anchor-small">kkhan</a>:so I didn't really look into the ClassLoading SPI test since that was more deps</div>
<div id="UAGCIN6QOS2">[14:27]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-external-small" href="http://anonsvn.jboss.org/repos/jbossas/projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/lifecycle/LifecycleState.java">http://anonsvn.jboss.org/repos/jbossas/projects/bootstrap/trunk/api/src/main/java/org/jboss/bootstrap/api/lifecycle/LifecycleState.java</a></div>
<div id="NLL43I7QOS2">[14:28]<a class="jive-link-anchor-small">kkhan</a>:I want something like PRE_KERNEL_BOOTSTRAP and POST_KERNEL_BOOTSTRAP</div>
<div id="EYAP2A9QOS2">[14:29]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Sound ok?</div>
<div id="SGW8DZ9QOS2">[14:29]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Not really in its current form</div>
<div id="UGKQ96AQOS2">[14:30]<a class="jive-link-anchor-small">ALR</a>:As "Kernel" is an MC construct</div>
<div id="MFKYJAQOS2">[14:30]<a class="jive-link-anchor-small">ALR</a>:And these LifecycleStates are in the main API</div>
<div id="NV8BCTAQOS2">[14:30]<a class="jive-link-anchor-small">kkhan</a>:Actually, I probably don't need the PRE one that can be done whenever</div>
<div id="AD989YAQOS2">[14:30]<a class="jive-link-anchor-small">kkhan</a>:i.e. early</div>
<div id="ZI7KH5BQOS2">[14:30]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: "INSTANCIATED"</div>
<div id="HBYDKHBQOS2">[14:30]<a class="jive-link-anchor-small">ALR</a>:Or maybe PRE_INIT</div>
<div id="QEZ270CQOS2">[14:31]<a class="jive-link-anchor-small">ALR</a>:And the "post", when exactly does that need to happen?</div>
<div id="CX9BARCQOS2">[14:31]<a class="jive-link-anchor-small">kkhan</a>:The post needs to happen after the kernel has been bootstrapped, but before anything else has been deployed</div>
<div id="UDL22DDQOS2">[14:32]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: By "deployed", you mean processing the bootstrap XMLs?</div>
<div id="UBDWHHDQOS2">[14:32]<a class="jive-link-anchor-small">kkhan</a>:yes</div>
<div>[14:32] <a class="jive-link-anchor-small">pgier</a> joined the chat room.</div>
<div>[14:32] <a class="jive-link-anchor-small">pgier</a> was granted voice by <a class="jive-link-anchor-small">ChanServ</a>.</div>
<div id="HBLKBRDQOS2">[14:32]<a class="jive-link-anchor-small">ALR</a>:OK</div>
<div id="OGR0ETDQOS2">[14:32]<a class="jive-link-anchor-small">ALR</a>:Lemme look</div>
<div id="SF2D2WFQOS2">[14:33]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: I think a PRE_CONFIG or POST_CONFIG state would do the trick, to be raised by AbstractServer.doInitialize() somewhere</div>
<div id="O6L0K4GQOS2">[14:33]<a class="jive-link-anchor-small">kkhan</a>:That should be generic enough</div>
<div id="SI6H1AGQOS2">[14:33]<a class="jive-link-anchor-small">ALR</a>:Yep</div>
<div id="NBFN1NGQOS2">[14:33]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Ok, I'll go with that then</div>
<div id="TIZN8PGQOS2">[14:34]<a class="jive-link-anchor-small">ALR</a>:Just need to think of a good name.</div>
<div id="Y37415HQOS2">[14:34]<a class="jive-link-anchor-small">ALR</a>:I think "PRE_BOOTSTRAP", "POST_BOOTSTRAP"?</div>
<div id="ANCD22IQOS2">[14:34]<a class="jive-link-anchor-small">kkhan</a>:Hmm, not sure</div>
<div>[14:34] <a class="jive-link-anchor-small">vblagoje</a> joined the chat room.</div>
<div id="L3VOCKIQOS2">[14:35]<a class="jive-link-anchor-small">ALR</a>:That's essentially what we're doing.</div>
<div id="XZZ93UIQOS2">[14:35]<a class="jive-link-anchor-small">kkhan</a>:Since only AbtractMCServerBase calls bootstrap</div>
<div id="TGF39UIQOS2">[14:35]<a class="jive-link-anchor-small">ALR</a>:The generic API knows about bootstraps.</div>
<div id="OIUIC6JQOS2">[14:35]<a class="jive-link-anchor-small">kkhan</a>:So where do I raise it?</div>
<div id="CQR9BCJQOS2">[14:35]<a class="jive-link-anchor-small">ALR</a>:Yes, but that's only because it's our only impl.</div>
<div id="W2BAETJQOS2">[14:35]<a class="jive-link-anchor-small">ALR</a>:We could also, for instance, have a Fungal (JCA Kernel) implementation.</div>
<div id="L5JAC8KQOS2">[14:36]<a class="jive-link-anchor-small">ALR</a>:So you'd fire the callbacks in AbstractMCServerBase, yes.</div>
<div id="QQ5O3RKQOS2">[14:36]<a class="jive-link-anchor-small">ALR</a>:Or at a higher level, even better, if you could refactor to get the right wiring.</div>
<div id="CD4V91MQOS2">[14:37]<a class="jive-link-anchor-small">kkhan</a>:I think I'd like to trigger it from AbstractServer.doInitialize()</div>
<div id="XG86E7MQOS2">[14:37]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-external-small" href="http://anonsvn.jboss.org/repos/jbossas/projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/server/AbstractServer.java">http://anonsvn.jboss.org/repos/jbossas/projects/bootstrap/trunk/impl-base/src/main/java/org/jboss/bootstrap/impl/base/server/AbstractServer.java</a></div>
<div id="J1FQ2TMQOS2">[14:37]<a class="jive-link-anchor-small">ALR</a>:Yes, all you need to do is call "setState"</div>
<div id="U8F975NQOS2">[14:37]<a class="jive-link-anchor-small">kkhan</a>:Just need the name</div>
<div>[14:38] smarlow is now known as <a class="jive-link-anchor-small">smarlow_afk</a>.</div>
<div id="VGW54KNQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:AbstractServer.doInitialize is now abstract</div>
<div id="NVAD47OQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:So again, some refactoring may be needed to get your pre/post bootstrap hooks up at that level</div>
<div id="OLV12FOQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Why don't I take this?</div>
<div id="ILGKBIOQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:I'll get you the hooks.</div>
<div id="GDHPGOOQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:And refactor the events and the tests.</div>
<div id="IRR83TOQOS2">[14:38]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Cool</div>
<div id="N9UA2XOQOS2">[14:38]<a class="jive-link-anchor-small">ALR</a>:Then you can extract out your ClassPool stuff.</div>
<div id="BRQB54PQOS2">[14:39]<a class="jive-link-anchor-small">ALR</a>:And reintegrate it.</div>
<div id="TXOWL5PQOS2">[14:39]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: Yeah, sounds good</div>
<div id="BYHWD8PQOS2">[14:39]<a class="jive-link-anchor-small">kkhan</a>:Thanks</div>
<div id="XN8XJDPQOS2">[14:39]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Where do you see the ClassPool logic going?</div>
<div id="IF9Z3WPQOS2">[14:39]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: I think that will go in the classpool project</div>
<div id="ID3UHSQQOS2">[14:40]<a class="jive-link-anchor-small">kkhan</a>:And then I'll modify AS MAin to set the correct event handlers before booting the server</div>
<div id="YFZYD3RQOS2">[14:40]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Making ClassPool depend upon bootstrap-api?</div>
<div id="KX721RRQOS2">[14:40]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: I haven't looked too much into which deps that would bring in yet</div>
<div id="NCBG7ASQOS2">[14:40]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: I think we should put it into bootstrap-impl-as.</div>
<div id="KLBE4LSQOS2">[14:41]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: For 2 reasons:</div>
<div id="CGM6HMSQOS2">[14:41]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: ok by me</div>
<div id="K8PIAVSQOS2">[14:41]<a class="jive-link-anchor-small">ALR</a>:1) ClassPool needn't know about Bootstrap.</div>
<div id="NYIODNTQOS2">[14:41]<a class="jive-link-anchor-small">ALR</a>:2) We shouldn't add the event handlers in AS Main; that's used only by standalone AS.&#160; We get it for free in Embedded if we set it up in bootstrap-as.</div>
<div id="HH2LIAUQOS2">[14:42]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: ok, as long as you don;t mind the deps there.</div>
<div id="TFCNJWUQOS2">[14:42]<a class="jive-link-anchor-small">ALR</a>:<a class="jive-link-anchor-small">kkhan</a>: Nope.&#160; It's for AS, so all bets are off.</div>
<div id="TE7N72VQOS2">[14:42]<a class="jive-link-anchor-small">kkhan</a>:<a class="jive-link-anchor-small">ALR</a>: ok cool</div><br/><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p></blockquote></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/542584#542584">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Microcontainer Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2115">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


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

</div>

</body>
</html>