Subject: [Ietf-calsify] Section 3.2: "method" parameter and sequence of iCalendar objects

From: bernard.desruisseaux at oracle.com (Bernard Desruisseaux)
Date: Tue Oct 3 10:11:37 2006

Alexey,

I understand you ? don't feel good about disallowing "method"
with iCalendar stream containing multiple objects. ?

What should be done with the "method" parameter when the iCalendar
stream is a sequence of iCalendar objects with the same or different
METHOD values?

While I don't understand your concern here, I'm open to other
alternatives to close this (minor) issue. :-)

Thanks,
Bernard

Alexey Melnikov wrote:
> Bernard Desruisseaux wrote:
> 
>> Alexey Melnikov wrote:
>>
>>> Bernard Desruisseaux wrote:
>>>
>>>> New text:
>>>>
>>>> > The "method" parameter MUST be specified only for iCalendar
>>>> > stream that contains a single iCalendar object.
>>>
>>> No, I think this is not correct. It is Ok to have multiple iCalendar 
>>> objects in an iCalendar stream, as long as they all have the same 
>>> METHOD property.
>>
>> Where is that defined?
> 
> It is nowhere prohibited :-).
> 
>> My reasoning is that if the iCalendar stream contains more than one
>> iCalendar object then it most likely doesn't describe a scheduling
>> transaction, and thus you probably shouldn't specify a "method"
>> parameter in the Content-Type header field.
> 
> I don't feel good about disallowing "method" with iCalendar stream 
> containing multiple objects.
> An implementation already has to check if the "method" parameter matches 
> what is specified in the calendar stream with a single object. It is not 
> difficult to check all objects.
> 
> Does anybody have some statistics on how frequently a calendar stream 
> can contain multiple calendar objects?
>

---

From: alexey.melnikov at isode.com (Alexey Melnikov)
Date: Mon Oct 9 04:58:37 2006

Bernard Desruisseaux wrote:

> Alexey,
>
> I understand you "don't feel good about disallowing "method"
> with iCalendar stream containing multiple objects."

If the "method" is not present, this means that the message is not an 
iMIP message.
So for an iMIP message the "method" must be present.

The use case I am thinking about is batch replay of transactions. You 
can say that transactions might have different "method" values. But I 
would rather not prohibit something that might be useful in the future, 
if this doesn't cost anything (or almost nothing) for implementors.

> stream is a sequence of iCalendar objects with the same or different

If a stream is a sequence of iCalendar objects with the same METHOD 
value, it is Ok to allow for "method" parameter.
If a stream is a sequence of iCalendar objects with different METHOD 
values, then this should be considered an error.

> alternatives to close this (minor) issue. :-)

How about the following:

Old text:

 > The "method" parameter MUST be the same value as that
 > specified in the "METHOD" component property in the iCalendar object.
 > If one is present, the other MUST also be present.

Bernard's new text:

 > stream that contains a single iCalendar object. The "method"
 > parameter MUST be the same value as that specified in the "METHOD"
 > component property in the iCalendar object. If one is present,
 > the other MUST also be present.
_
_My proposal:

 > The "method" parameter can be specified only for an iCalendar
 > stream that contains one or more iCalendar objects, all having
 > the same value of the "METHOD" component property. The "method"
 > parameter MUST be the same value as that specified in the "METHOD"
 > component property in the iCalendar object. For such iCalendar
 > streams, if one is present, the other MUST also be present.

 > It is an error if the "method" parameter is specified for an iCalendar
 > stream that contains multiple iCalendar objects with different
 > values of the "METHOD" component property.

Does this work?