[jboss-user] [Microcontainer] - Microcontainer support in Netty

alesj do-not-reply at jboss.com
Mon Jan 12 07:46:00 EST 2009


>From Trustin Lee (Netty author):

I've just finished a preliminary integration layer for Netty and
Microcontainer.  I thought about adding various metadata and things
like that, but ended up with just providing some singletons because
Netty is basically a framework so there's nothing much to provide in
deployment time.  Here's jboss-beans.xml I wrote:
    * http://tinyurl.com/7668pk

A user will get a proper ChannelFactory implementation via injection:

  |     <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |                 xsi:schemaLocation="urn:jboss:bean-deployer
  | bean-deployer_2_0.xsd"
  |                 xmlns="urn:jboss:bean-deployer:2.0">
  | 
  |       <bean name="DiscardServer"
  |             class="net.gleamynode.tmp.discard.DiscardServer">
  |         <constructor>
  |           <parameter class="org.jboss.netty.channel.ChannelFactory">
  |             <inject
  | bean="org.jboss.netty.channel.socket.ServerSocketChannelFactory" />
  |           </parameter>
  |         </constructor>
  |       </bean>
  |     </deployment>
  | 
It seems to work fine so far.  The next step is to write three modules:
  * Business logic handler
  * Google protobuf based protocol codec
  * A glue module that combines all together to run the server up
(will look up proper handler and codec instances via KernelController
- I guess it's a piece of cake, right?)

By doing so, I'd like to show that a user can upgrade the protocol
codec or business logic in runtime without interruption.  That is,
dropping an updated JAR into the sandbox directory should affect the
application immediately.  I think just looking for a bean via
KernelController for every connection will not work because a JAR will
be undeployed and deployed when a new JAR is dropped and therefore the
bean I am looking for might disappear during the redeployment.  Should
I use some call back in this case, or does MC hide this race condition
during upgrade (or redeployment)?

BTW, I still didn't figure out how to hide internal beans.  How can I
exactly do that?  I looked into the test cases and
PreInstallsAction.java but I guess I'm not following the speed of your
thought.  An example would be appreciated.  ;-) 

I'm also thinking about distributing a minimal JBossMC binary tarball
with my tutorial so that a user can play with MC more easily (i.e.
untar and drop the sample JARs etc etc).  I think it might help MC
adoption because people are really used to just downloading a Tomcat
tarball and dropping a WAR and see it working.  We already have
something similar in jboss-demos, but I think it needs to be a binary
form so that users can familiarize with MC quickly.  I can do this
while I write my tutorial.  WDYT?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4200972#4200972

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4200972



More information about the jboss-user mailing list