3 Replies Latest reply on Oct 29, 2008 4:08 AM by Ron Sigal

    Changes in jboss-service.xml

    Javid Jamae Newbie

      I had a few questions about changes in the server/conf/jboss-service.xml file between the JBoss 5 beta releases and the CR releases.

      1) I noticed that the "jboss.remoting:service=Connector,transport=socket" MBean had changed. In particular I noticed that the handlers section defined in the config block had changed. It used to reference the unified invoker, but now references a class called org.jboss.deployment.remoting.DeployHandler which seems to be related to JSR88.

      It was my understanding that the job of the connector is to tie together the Server Invoker and the Invocation Handler (such as the unified invoker). I'm guessing that this is still happening, but my question is how? Is the reference to the unified invoker's marshaller/unmarshaller sufficient for the connector to know what invocation handler to bind to? Or does the connector always bind to the unified invoker by default? If so, how could you specify a different invocation handler if you wanted to?

      2) I ran across a JIRA issue (can't remember which) that said that the jboss-service.xml was going away altogether. Is this true? If so, where will the connector configuration move to?

        • 1. Re: Changes in jboss-service.xml
          Ron Sigal Master

          Hi Javid,

          "javidjamae" wrote:

          1) I noticed that the "jboss.remoting:service=Connector,transport=socket" MBean had changed. In particular I noticed that the handlers section defined in the config block had changed. It used to reference the unified invoker, but now references a class called org.jboss.deployment.remoting.DeployHandler which seems to be related to JSR88.

          It was my understanding that the job of the connector is to tie together the Server Invoker and the Invocation Handler (such as the unified invoker).


          Exactly

          "javidjamie" wrote:

          I'm guessing that this is still happening, but my question is how? Is the reference to the unified invoker's marshaller/unmarshaller sufficient for the connector to know what invocation handler to bind to?


          No.

          "javidjamie" wrote:

          Or does the connector always bind to the unified invoker by default?


          No. The Connector MBean always needs at least one ServerInvocationHandler, and it can be any ServerInvocationHandler. The obscure fact about the UnifiedInvoker (explained in http://docs.jboss.org/jbossas/unified_invoker/UnifiedInvoker_guide.html) is that, in addition to the standard configuration option of specifying it as a ServerInvocationHandler in the Connector MBean, it can be configured separately and the Connector can be injected into the UnifiedInvoker through the use of "optional-attribute-name":

           <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker"
           name="jboss:service=invoker,type=unified">
           <depends>jboss:service=TransactionManager</depends>
           <depends optional-attribute-name="Connector" proxy-type="attribute">
           jboss.remoting:service=Connector,transport=socket
           </depends>
           </mbean>
          


          When the Connector is injected, the UnifiedInvoker then programatically registers itself as a ServerInvocationHandler.

          So, what you're seeing in AS 5.0.0.CR2 (for example) is

          1. The UnifiedInvoker has been moved from $CONFIG/conf/jboss-service.xml to $CONFIG/deploy/remoting-service.xml, and

          2. the org.jboss.deployment.remoting.DeployHandler that you see in $CONFIG/conf/jboss-service.xml is just another ServerInvocationHandler, unrelated to UnifiedInvoker.

          "javidjamie" wrote:

          2) I ran across a JIRA issue (can't remember which) that said that the jboss-service.xml was going away altogether. Is this true? If so, where will the connector configuration move to?


          Maybe JBAS-4914 "Refactor the conf/jboss-service.xml services"? In any case, it seems to be getting smaller by the hour. Currently, there are no Remoting MBeans in $CONFIG/conf/jboss-service.xml. In particular, the "jboss.remoting:service=Connector,transport=socket" MBean has now joined "jboss:service=invoker,type=unified" (UnifiedInvoker) in $CONFIG/deploy/remoting-service.xml. I believe that eventually all of the remaining MBeans in $CONFIG/conf/jboss-service.xml will be moved to the deploy directory (and maybe the deployers directory - I'm not sure). I don't know if it will disappear before AS 5.0.0.GA.

          But, in fact, that's not the end of the story. The current "legacy" MBean configuration should go away, as well, so $CONFIG/deploy/remoting-service.xml will be shrinking also. It will be replaced by something like "remoting-beans.xml", in which the Connector is configured in native Microcontainer syntax. Stay tuned for that.

          -Ron

          • 2. Re: Changes in jboss-service.xml
            Javid Jamae Newbie

            Ron, thanks for the detailed answer. That really clarifies everything.

            • 3. Re: Changes in jboss-service.xml
              Ron Sigal Master

              Glad to hear it.