Jacques,
More comments below
At 02:16 PM 1/24/2003 -0800, you wrote:
inline
<Jacques>
-----Original Message-----
From: Michael Kass
[mailto:]
Sent: Friday, January 24, 2003 12:12 PM
To: jacques Durand
Cc:
Subject: Re-ordering precedence rules
Jacques,
I had the order reversed on rule
precedence for the Config parameters.
Here is the correct selection rules for the Test
Driver. The logic is:
For "non-driver mode" ( stand-alone Test
Driver)
If someone explicitly declares any of these values in the
actual XML
PutMessage declaration, then that value should be used by
the Test Driver
to construct
the message.
If the value is not in the PutMessage declaration, then the
Configuration
Parameter, if present is used to assign the value.
For parameters that are "auto-generated" by the Test Driver ( e.g.
Timestamp ), if there is no XML declaration, and no Config parameter value
set, then the Test Driver "auto-generated" value is used.
For parameters that are also present in the CPPA ( SenderParty and
ReceiverParty) , an explicit XML PutMessage declaration takes
precedence. If an XML message declaration is not present, then if a Config
parameter is present, it is used. If neither a message declaration nor a
Config parameter is set, the the CPPA value is used.
<Jacques> that seems to cover it all. Bottom line is that XML PutMessage script
should have precedence. For some of these paraemters however,
the ebXML implementation will even have higher precedence, like MesageId.
as it has the "last word" before sending the message.
[MIKE] - Understood. "service mode" is a different animal.
Only thing I think we don't need to refer to here:
the CPA doc (not CPPA, which is the name of the spec and of the TC...)
probably should not be relied upon (not supposed to be interpreted by
Test Driver - so far in this Framework 1.0).
[MIKE] - CPA ( meaning CPAId ) is provided only to pass the ID to the Test Driver to build the message.
(in connection mode) And in "service mode", won't the "interfaced MSH" have to know the semantic meaning of the CPAId
and configure itself appropriately? So the Test Driver has to tell the MSH the id of the cpa, that it will
"implicitly" understand and load. Since the implementation will likely send out the majority of "first messages", it would
need to know the CPAId to use, and configure itself appropriately, I would think. Comments?
[MIKE] - In connection mode, I know we are NOT expecting a Test Driver to load a CPA, or CPA-like document. However, much of the info in a CPA
( like endPoint, PartyId, SyncReplyMode, Retries, RetryInterval, AckRequested ) would really help in writing tests.
Particularly for timing ( calculating timeouts ). I do not believe that we could formally "parameterize" all that is needed
to configure a Test Driver ( i.e expand our list of parameters that we've agreed upon )
We can, however "informally" do so through the "wildcard" <ConfigurationItem> element,
with its name/value pair. So if we "change a CPA" during for a new <ConfigurationGroup/>, we would also have to change the
"timeout" <ConfigurationItem/> parameter, if the CPA retries/retry-interval changes. ( i.e. the Test Driver, while basically "dumb"
may have to store data that it can use for XPath evaluation.. such as determining if a message arrived too late.
Does this seem reasonable?
[MIKE] - It seems logical that we could do this, since we are following the "spirit/semantics" of a CPA, using our own defined parameters to get the
job done. However, our Test Suite would not be portable, unless someone else implemented a Test Driver that
understands our "timeout" <ConfigurationItem> parameter... i.e.. it hasn't been "formalized" as a parameter
Comments?
In fact, CPA data will be relied
upon through the implementation where it is installed: we know
this will determine some header attributes (security, reliability, possibly
sender and receiver...) Things that we cannot control anyway by Test Driver in "service" mode.
[MIKE] - Assuming we are in "service mode" yes. However, even in "service mode", the Test Driver
could no doubt benefit from the data in the CPA. However I understand that at this point
CPA is at best an abstraction to the Test Driver.
In your table below:
- i'd replace "CPA" more generally by "ebXML implementation",
and that would be the highest precedence, possibly for senderparty, receiverparty,
messageId, timestamp.
- I dont think we need "Test Driver autogenerates": all parameters are actually
set by test suite or by ebXML implementation itself, including Timestamp.
[MIKE] - I disagree that we will be coding Timestamps by hand in "connection mode". I agree that in
"service mode", the implementation does the auto-generation.
But in "connection mode", I'd much rather have a Test Driver pound out the clock times.
The Test Suite is just an XML file. The Test Driver will generate Timestamps and MessageIds by default,
unless we "override" them with a Configuration parameter, or explicitly declare them in the Test Suite document.
Maybe I'm not interpreting what you said correctly?
The table below illustrates this:
Parameter Name CPPA Equivalent Precedence1 Precedence2 Precedence3
------------------------
------------------------- ------------------- -------------------
-------------------
$SenderParty <tp:PartyInfo><tp:PartyId/></tp:PartyInfo> XML PutMessage
Declaration Config Param CPPA
$ReceiverParty <tp:PartyInfo><PartyId/></tp:PartyInfo> XML PutMessage
Declaration Config Param CPPA
$CPA (Id) XML PutMessage Declaration Config Param
$ConversationId XML PutMessage Declaration Config Param Test Driver
auto-generates
$Action XML PutMessage Declaration Config Param
$MessageId XML PutMessage Declaration Config Param Test Driver
auto-generates
$Timestamp XML PutMessage Declaration Config Param Test Driver
auto-generates
For "driver mode" ( Test Driver coupled with MSH ) the same rules as above
would hold, however the Test Driver may not be able to set these values
through the MSH interface.
[MIKE] - Understood
<Jacques> for Test Driver in "connection" mode (generating duirectly the message on wire),
I believe precedences are same (except ebXML implementation e.g. MSH is not involved anymore
on driver side)
Cheers,
Jacques
\
Do you agree with this?
Thanks,
Mike