[jboss-user] [JBoss Microcontainer Development] - ClassPool bootstrap refactoring

Kabir Khan do-not-reply at jboss.com
Wed May 12 09:45:27 EDT 2010


Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] replied to the discussion

"ClassPool bootstrap refactoring"

To view the discussion, visit: http://community.jboss.org/message/542584#542584

--------------------------------------------------------------
IRC discussion


> 
> kkhan:ping ALR
> 
> [14:24]ALR:kkhan: Hey
> 
> [14:24]kkhan:ALR: Regarding my bootstrap stuff I think you're right
> 
> [14:24] ggear joined the chat room.
> 
> [14:24] ggear was granted voice by ChanServ.
> 
> [14:25]kkhan:too many dependencies on classpools and other stuuff
> 
> [14:25]ALR:kkhan: Yup, saw your post.
> 
> [14:25]kkhan:ALR: Are you ok with me adding the correct hooks for events where I need them, or do you prefer doing so yourself
> 
> [14:25]ALR:Also we should be making sure all commits/features get testied
> 
> [14:26]ALR:kkhan: Sure, you can add them.  I'll give some opinions and help guide as you need.
> 
> [14:26]kkhan:ALR: Yeah, what I had wasn't really meant to be committed, it was more a basis for further instructions
> 
> [14:26]kkhan:*further discussion
> 
> [14:26]ALR:kkhan: Ah OK.  I put it in to facilitate testing
> 
> [14:26]ALR:But hadn't really planned on releasing like that
> 
> [14:26]ALR:kkhan: I'll reply to your post, but also
> 
> [14:26]ALR::
> 
> [14:26]ALR:I got that ClassLoading SPI test passing
> 
> [14:27]kkhan:ok cool
> 
> [14:27]ALR:Let's see what events you need:
> 
> [14:27]kkhan:ALR: It probably makes sense to rever what I had done to get rid of all the deps
> 
> [14:27]kkhan:and then do it properly
> 
> [14:27]kkhan:so I didn't really look into the ClassLoading SPI test since that was more deps
> 
> [14:27]ALR: 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
> 
> [14:28]kkhan:I want something like PRE_KERNEL_BOOTSTRAP and POST_KERNEL_BOOTSTRAP
> 
> [14:29]kkhan:ALR: Sound ok?
> 
> [14:29]ALR:kkhan: Not really in its current form
> 
> [14:30]ALR:As "Kernel" is an MC construct
> 
> [14:30]ALR:And these LifecycleStates are in the main API
> 
> [14:30]kkhan:Actually, I probably don't need the PRE one that can be done whenever
> 
> [14:30]kkhan:i.e. early
> 
> [14:30]ALR:kkhan: "INSTANCIATED"
> 
> [14:30]ALR:Or maybe PRE_INIT
> 
> [14:31]ALR:And the "post", when exactly does that need to happen?
> 
> [14:31]kkhan:The post needs to happen after the kernel has been bootstrapped, but before anything else has been deployed
> 
> [14:32]ALR:kkhan: By "deployed", you mean processing the bootstrap XMLs?
> 
> [14:32]kkhan:yes
> 
> [14:32] pgier joined the chat room.
> 
> [14:32] pgier was granted voice by ChanServ.
> 
> [14:32]ALR:OK
> 
> [14:32]ALR:Lemme look
> 
> [14:33]kkhan:ALR: I think a PRE_CONFIG or POST_CONFIG state would do the trick, to be raised by AbstractServer.doInitialize() somewhere
> 
> [14:33]kkhan:That should be generic enough
> 
> [14:33]ALR:Yep
> 
> [14:33]kkhan:ALR: Ok, I'll go with that then
> 
> [14:34]ALR:Just need to think of a good name.
> 
> [14:34]ALR:I think "PRE_BOOTSTRAP", "POST_BOOTSTRAP"?
> 
> [14:34]kkhan:Hmm, not sure
> 
> [14:34] vblagoje joined the chat room.
> 
> [14:35]ALR:That's essentially what we're doing.
> 
> [14:35]kkhan:Since only AbtractMCServerBase calls bootstrap
> 
> [14:35]ALR:The generic API knows about bootstraps.
> 
> [14:35]kkhan:So where do I raise it?
> 
> [14:35]ALR:Yes, but that's only because it's our only impl.
> 
> [14:35]ALR:We could also, for instance, have a Fungal (JCA Kernel) implementation.
> 
> [14:36]ALR:So you'd fire the callbacks in AbstractMCServerBase, yes.
> 
> [14:36]ALR:Or at a higher level, even better, if you could refactor to get the right wiring.
> 
> [14:37]kkhan:I think I'd like to trigger it from AbstractServer.doInitialize()
> 
> [14:37]ALR: 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
> 
> [14:37]ALR:Yes, all you need to do is call "setState"
> 
> [14:37]kkhan:Just need the name
> 
> [14:38] smarlow is now known as smarlow_afk.
> 
> [14:38]ALR:AbstractServer.doInitialize is now abstract
> 
> [14:38]ALR:So again, some refactoring may be needed to get your pre/post bootstrap hooks up at that level
> 
> [14:38]ALR:kkhan: Why don't I take this?
> 
> [14:38]ALR:I'll get you the hooks.
> 
> [14:38]ALR:And refactor the events and the tests.
> 
> [14:38]kkhan:ALR: Cool
> 
> [14:38]ALR:Then you can extract out your ClassPool stuff.
> 
> [14:39]ALR:And reintegrate it.
> 
> [14:39]kkhan:ALR: Yeah, sounds good
> 
> [14:39]kkhan:Thanks
> 
> [14:39]ALR:kkhan: Where do you see the ClassPool logic going?
> 
> [14:39]kkhan:ALR: I think that will go in the classpool project
> 
> [14:40]kkhan:And then I'll modify AS MAin to set the correct event handlers before booting the server
> 
> [14:40]ALR:kkhan: Making ClassPool depend upon bootstrap-api?
> 
> [14:40]kkhan:ALR: I haven't looked too much into which deps that would bring in yet
> 
> [14:40]ALR:kkhan: I think we should put it into bootstrap-impl-as.
> 
> [14:41]ALR:kkhan: For 2 reasons:
> 
> [14:41]kkhan:ALR: ok by me
> 
> [14:41]ALR:1) ClassPool needn't know about Bootstrap.
> 
> [14:41]ALR:2) We shouldn't add the event handlers in AS Main; that's used only by standalone AS.  We get it for free in Embedded if we set it up in bootstrap-as.
> 
> [14:42]kkhan:ALR: ok, as long as you don;t mind the deps there.
> 
> [14:42]ALR:kkhan: Nope.  It's for AS, so all bets are off.
> 
> [14:42]kkhan:ALR: ok cool
> 
> 

--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/542584#542584]

Start a new discussion in JBoss Microcontainer Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2115]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20100512/bb73c9e1/attachment-0001.html 


More information about the jboss-user mailing list