[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Erasing messages

> >      1)  Why is the key a String instead of some "KeyWrapper" or
> whatever...?
> I don't remind the exact reason. Probably just to avoid to "force"
> clients to use these Wrappers if the don't want it. In any case, if you
> have the KeyWrapper object (lets say keyWrapper), then you can pass
> keyWrapper.toString() to erase.

All method invokations of xmlBlaster have simple strings as
arguments. The strings are usually xml encoded.
This allows future changes and enhancements without
braking the client/server contract.
(An older client may still talk to a newer server without
need to recompile).

If we would pass objects (or structs) as arguments, the CORBA IDL
would change with every small modification, for example
adding a new QoS 'ForceUpdate' would change the object
and could lead that an older client somewhere suddenly
couldn't talk to the updated xmlBlaster server anymore.

Having the arguments as xml encoded strings, allows simple
access, if you use Perl, Python, C++ or whatever.

The Java class KeyWrapper is just a simple helper
class for Java clients,
it is only provided that you don't need to type
the xml ASCII string "by hand".

As Michele mentioned, keyWrapper.toString() or keyWrapper.toXml()
(which is the same) delivers you the xml ASCII string which
is used as argument to invoke the xmlBlaster server methods.


Marcel Ruff
mailto:ruff at swand.lake.de