« Return to Thread: Mule Agents 2.0 Configuration

Re: Mule Agents 2.0 Configuration

by andrew cooke :: Rate this Message:

Reply to Author | View in Thread



i think there is a way to extend option 2.  will try a quick example and
get back to you.

andrew


> Hi,
>
> Just a summary of the two options with example schemas and +/-'s we
> have discussed...
>
> Option 1:
> =======
>
> + Very easy for different modules to contribute new agents, they just
> add a new root elements using the module namespace (and extending
> agentType complex type).
>
> - JMX agent dependencies need to be resolved when config is parsed and
> agent initialization executed in the correct order.  We can do this
> for known jmx agents, but ths dependency would need to be specified
> somewhere in config I guess for custom jmx agents (either ordering or
> "depends-on" attribute)
> - Less fool-proof and intuitive for users if they have to use correct
> agent order, or add "depends-on" attributes. (I don't like the idea of
> requiring "depends-on" attribute.)
>
> <root>
>     <xsd:element name="jmx-server"/>
>     <xsd:element name="jmx-mx4j-adaptor"/>
>     <xsd:element name="rmi-server"/>
>     <xsd:element name="jmx-notifications"/>
>     <xsd:element name="jmx-log4j"/>
>     <xsd:element name="log4j-notifications"/>
>     <xsd:element name="chainsaw-notifications"/>
>     <xsd:element name="publish-notifications"/>
>     <xsd:element name="jmx-default-config">
>     <xsd:element name="custom-agent" class=".."/>
> </root>
>
> Option 2:
>
> + More intuitive and fool-proof for users to configure jmx-agents
> + Saves complexities and/or agent ordering or extra "depends-on"
> attributes (at least for all jmx agents).
>
> - Modules can easily contribute generic agents by adding root
> elements, but it is harder (or impossible?) to contribute non-custom
> jmx dependent agents from other modules with another namespace in this
> way.
>
> Note "jmx-server" creates or locates MBeanServer and is used both for
> embedded and standalone jmx instances
> .
> <root>
>     <xsd:element name="jmx-server"/>
>         <xsd:element name="jmx-default-config">
>         <xsd:element name="jmx-mx4j-adaptor"/>
>         <xsd:element name="jmx-log4j"/>
>         <xsd:element name="jmx-notifications"/>
>         <xsd:element name="jmx-custom-agent" class=".."/>
>     </xsd:element/>
>     <xsd:element name="rmi-server"/>
>     <xsd:element name="log4j-notifications"/>
>     <xsd:element name="chainsaw-notifications"/>
>     <xsd:element name="publish-notifications"/>
>     <xsd:element name="custom-agent" class=".."/>
> </root>
>
> Dan
>
>
> On 8/17/07, andrew cooke <acooke@...> wrote:
>> slow reading email today, sorry (and laptop just crashed hard which was
>> a
>> bit worrying - no idea why).
>>
>> anyway, i think people are discussing how extensible we can make schema
>> if
>> they need to be nested.  a lot depends on the kind of nesting.  i
>> couldn't
>> find a good solution for filters which nest aribitrarily (you can define
>> things like "and-filter" which takes two nested filters for example).
>>
>> adding at top level is easy - we already have that (connectors).  i
>> admit
>> i *still* don't understand how this works (at the top level).
>>
>> adding nested is harder (as far as i can tell) - jmx would need a
>> "managed" element, which other modules would "subclass".  so it would
>> look
>> like:
>>
>>  <mgmt:jmx-server>
>>    ....
>>    <foo:managed>
>>      <foo:something/>
>>      <foo:another/>
>>    </foo:managed>
>>    <bar:managed>
>>      <bar:kofrekfoper/>
>>    </bar:managed>
>>  </mgmt:jmx-server>
>>
>> if that's not sufficient (and there's not something i've missed that
>> makes
>> this easier than i think, related to the top level inclusion) you could
>> perhaps express dependencies explicitly:
>>
>>  <mgmt:jmx-server name="jmx"/>
>>  <foo:managed name="bob" dependsOn="jmx"/>
>>  <bar:kodpsako dependsOn="jmx,bob"/>
>>
>> and then use that to construct a graph, check it doesn't have cycles,
>> and
>> use it to start things in the correct order (i have some code somewhere
>> that does this but it's in erlang :o)
>>
>> andrew
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>



---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

 « Return to Thread: Mule Agents 2.0 Configuration