[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[xmlblaster-devel] Unifying property names #2
Hi again,
in a discussion with Juergen he complained that our
administrative hierarchy
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.commands.html
is a mix.
He would not use instance names as xml-tags.
His approach is pure XPath:
Instead of
/node/heron/client/joe/2/maxEntries=1000
the extended hierarchy (without xml-attributes)
/root/node/heron/client/joe/session/2/queue/cb/maxEntries=1000
and in XPath notation (and instances are attribute id's)
/root/node[ at id='heron']/client[ at id='joe']/session[ at id='2']/maxEntries=1000
with this XML markup:
<xmlblaster>
<nodeList>heron,frodo,bilbo</nodeList>
<node id='heron'>
<uptime>34935</uptime>
<clientList>joe,jack,averel</clientList>
<client id='joe'>
<sessionList>2,6,8,12</sessionList>
<session id='2'>
<uptime>212</uptime>
<queue id='cb'>
<maxEntries>1000</maxEntries>
</queue>
</session>
</client>
</node>
</xmlblaster>
any comments?
regards,
Marcel
------ Original discussion ------------
Hi,
Michele and i where just discussing to unify the properties naming
convention of xmlBlaster:
o command line properties
o xmlBlaster.properties
http://www.xmlblaster.org/xmlBlaster/doc/requirements/util.property.html
o xml QoS markup, see e.g.
http://www.xmlblaster.org/xmlBlaster/doc/api/org/xmlBlaster/util/qos/ConnectQosSaxFactory.html
o code naming of properties, see e.g.
http://www.xmlblaster.org/xmlBlaster/doc/api/org/xmlBlaster/util/queue/I_Queue.html
o administrative markup of porperties
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.commands.html
(which covers SNMP, telnet, command-messages and JMX)
* Currently it is a mess as you can see in the examples below:
-cb.queue.maxMsg 1000 (command line)
cb.queue.maxMsg=1000 (xmlBlaster.properties)
<queue relating='session' maxMsg='1000'/> (ConnectQos markup)
long getMaxNumOfEntries(); (code example)
/node/heron/client/joe/cbQueueNumMsgs=1000 (administrative command,
telnet, SNMP etc.)
We believe the administrative approach is most universal and simple
(please see the XML structure in
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.commands.html)
* Here are some examples with the new approach:
-queue/cb/maxEntries=1000 (relative addressed on client
command line)
-/node/heron/client/joe/queue/cb/maxEntries=1000 (command line,
absolute addressed)
queue/cb/maxEntries=1000 (xmlBlaster.properties, relative
addressed)
<queue>
<cb> (the 'relating' from above - the
callback queue)
<maxEntries>1000</maxEntries> (ConnectQos markup, relative to the
invoking client)
</cb>
</queue>
long getMaxEntries(); (code example)
/node/heron/client/joe/queue/cb/maxEntries=1000 (administrative command)
/node/frodo/topic/helloWorld/queue/history/maxEntries=10
(add a CORBA plugin to heron)
/node/heron/ProtocolPlugin[IOR][1.0]=org.xmlBlaster.protocol.corba.CorbaDriver
JdbcQueuePlugin/tablePrefix=xmlblast (configure a
specific plugin)
/node/heron/JdbcQueuePlugin/tablePrefix=xmlblast
/node/heron/client/joe/queue/cb/JdbcQueuePlugin/tablePrefix=xmlblast
* As you may have noted the markup consists of pairs like
'node/heron' where 'node' is the tag or class name and 'heron' is the
instance ID
'topic/helloWorld' where 'topic' is the tag or class name and
'helloWorld' is the instance ID
Only for assignement the '=' signature is used ('/' would be possible
as well)
to visualize the purpose and to be URL compliant.
* Benefits:
o Unified naming approach
o Simple syntax
o local (relative) settings are clusterwide expandable
o XPath compliant syntax
o URL compliant syntax
o Automatic conversion from flat hierarchical view to XML view and
vice versa
o No [] brackets anymore which frightens Michele, Bjorn and even Cyrille
(only for pugin type and version and for property arrays we still
use [])
* Drawback for URL setting
As described in the admin.commands requirement we have up to now
used a '?' syntax when passing values, e.g.
client/joe/-17/queue/cb/?maxEntries=30000
to be URL comforming.
This '?' will now be dropped for all configurations (like command line
or telnet) and will be only used for browser write access.
URL read access works fine without a '?'.
Comments are very welcome!
best regards
Marcel + Michele
PS: Thanks to Heinrich, Bjorn and Cyrille for their feedback