sca-assembly message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Re: [sca-assembly] [Issue 95] "wiredByImpl" is an invalid attribute for aComposite Reference
- From: Mike Edwards <mike_edwards@uk.ibm.com>
- To: OASIS Assembly <sca-assembly@lists.oasis-open.org>
- Date: Tue, 2 Dec 2008 13:28:35 +0000
Folks,
A comment on whether there is meaning
to multiplicity for a reference marked as "wiredByImpl".
Since it is the implementation itself
that declares the reference, including whether it is "wiredByImpl",
the question of whether multiplicity
has a meaning is moot unless there is a definition of how an
implementation goes about handling a
"wiredByImpl" reference.
Talk about representation of the reference
as a scalar or as an array makes some assumptions
about how the reference gets into the
implementation code in the first place. For Java, there is
currently no definition of how to do
this for a "wiredByImpl" reference. The function is defined
for BPEL
implementations but I note that there,
the multiplicity of a wiredByImpl reference is fixed at 0..1.
However, I can argue that the multiplicity
of the reference is irrelevant to the Assembly layer. The
reference can't be wired by the assembly,
and that's that. All that can be applied by the assembly
layer is configuration in terms of policies.
And there can only be a single copy of that.
The notion expressed below - that the
implementation would place requirements upon itself whether
to wire up a reference or not - seems
bizarre. The implementation either wires the reference or not
- and the only thing that cares is the
implementation itself.
Yours, Mike.
Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
Email: mike_edwards@uk.ibm.com
From:
| Simon Nash <oasis@cjnash.com>
|
To:
| OASIS Assembly <sca-assembly@lists.oasis-open.org>
|
Date:
| 01/12/2008 00:01
|
Subject:
| Re: [sca-assembly] [Issue 95] "wiredByImpl"
is an invalid attribute for a Composite Reference |
Anish,
I agree with your comments about the meaning of wiredByImpl on a
composite reference. This is the point I was trying to make
(albeit not very successfully) on the call.
Regarding 0..0, I don't think this is the same as wiredByImpl.
I think a wiredByImpl reference could be 0..1, 1..1, 0..n or 1..n.
If it is 1..n or 0..n, it's represented by an array in a Java
component implementation; otherwise it's represented by a scalar.
If it is 0..1 or 0..n, the implementation is allowed to wire it but
is not obliged to do so; otherwise, the implementation must wire it.
Simon
Anish Karmarkar wrote:
> Mike,
>
> Apologies for misunderstanding your proposal on the call today.
> Unfortunately, line numbers on a 2007 .doc file don't mean a whole
lot
> to me.
>
> IIUIC, what you are proposing is to get rid of the attribute wiredByImpl
> on a composite reference, while retaining the ability to promote a
> component reference that has wiredByImpl='true'.
>
> If this is correct, I think this is problematic. Without the
> wiredByImpl='true', the componentType associated with the composite
will
> not contain information about the fact that the reference cannot be
> wired. Higher-level composites won't know the cardinality associated
> with the reference (which is 0..0) and therefore will be free to wire
> it. Unless, the spec says that wiredByImpl='true' automatically becomes
> part of the CT associated with the composite by the virtue of the
fact
> that the underlying component reference has wiredByImpl='true'. We
allow
> narrowing of constraints when promoting. A 0..0 cannot be narrowed
any
> further, so wireByImpl='true' is indeed ripe for defaulting in such
cases.
>
> But as it stands I don't think there is any inconsistency in the spec
> (other than the fact that it does not say that you cannot change the
> value of wiredByImpl when promoting).
>
> Currently, wiredByImpl says:
> "wiredByImpl : boolean (0..1) - a boolean value, "false"
by default,
> which indicates that the implementation wires this reference
> dynamically. If set to "true" it indicates that the
target of the
> reference is set at runtime by the implementation code (eg by the
code
> obtaining an endpoint reference by some means and setting this as
the
> target of the reference through the use of programming interfaces
> defined by the relevant Client and Implementation specification).
If
> "true" is set, then the reference should not be wired statically
within
> a composite, but left unwired."
>
> Which seems right to me. There is implementation code associated with
a
> composite reference: it is the code associated with the corresponding
> promoted component reference (however levels deep).
>
> OTOH, the existence of wiredByImpl when we already have the multiplicity
> attribute (on both component reference as well as composite reference)
> always seemed a little strange to me. wiredByImpl is really saying
> multiplicity of 0..0, why not then just say exactly that. I know this
> was discussed during the OSOA days, but I don't recall why addition
of a
> new attribute was chosen over 0..0.
>
> I'll be bold and make a proposal to remove wiredByImpl altogether
and
> use 0..0 on the multiplicity attribute instead (with the usual narrowing
> rules for promotion).
>
> I'm hoping that, if there was a good argument for choosing wiredByImpl
> over 0..0 in OSOA, someone will bring it up here.
>
> Comments?
>
> -Anish
> --
>
> Mike Edwards wrote:
>>
>> Raiser: Mike
Edwards
>>
>> Target: Assembly
spec: sca-assembly-1.1-spec-cd01-rev3.doc
>>
>> Description:
>>
>> The current spec has the attribute @wiredByImpl as an attribute
of a
>> Composite reference element.
>> This cannot be valid, since there @wiredByImpl=true implies that
the
>> composite itself will act to wire
>> the reference at runtime. However, this can never happen
since there
>> is no active code in the
>> composite which could do this.
>>
>> It is valid for a reference on a component within the composite
to
>> have @wiredByImpl on one of its
>> references, but this applies to wiring of the component reference
-
>> and NOT to wiring of any
>> promotion of that reference.
>>
>> Proposal:
>>
>> Remove @wiredByImpl from <reference/> within a <composite/>.
>>
>> Specifically:
>>
>> Line 1337 - remove wiredByImpl="xs:boolean"?
>>
>> Lines 1399 - 1405 - remove
>>
>> Lines 3825 - 3826 - remove
>>
>> Lines 3971 - 4006 - replace with:
>>
>> <complexType name="ComponentReference">
>>
>> <complexContent>
>>
>>
<sequence>
>>
>>
<element
ref="sca:interface"
>> minOccurs="0" maxOccurs="1" />
>>
>>
<element
name="operation"
>> type="sca:Operation" minOccurs="0"
>>
>>
maxOccurs="unbounded" />
>>
>>
<element
ref="sca:binding" />
>>
>>
<element
ref="sca:callback"
>> minOccurs="0" maxOccurs="1" />
>>
>>
<any
namespace="##other"
>> processContents="lax" minOccurs="0"
>>
>>
maxOccurs="unbounded" />
>>
>>
</sequence>
>>
>>
<attribute name="name"
type="NCName"
>> use="required" />
>>
>>
<attribute name="autowire" type="boolean"
>> use="optional" />
>>
>>
<attribute name="wiredByImpl"
>> type="boolean" use="optional"
>>
>>
default="false"/>
>>
>>
<attribute name="target"
>> type="sca:listOfAnyURIs" use="optional"/>
>>
>>
<attribute name="multiplicity"
>> type="sca:Multiplicity"
>>
>>
use="optional"
default="1..1" />
>>
>>
<attribute name="requires"
>> type="sca:listOfQNames" use="optional"/>
>>
>>
<attribute name="policySets"
>> type="sca:listOfQNames"
>>
>>
use="optional"/>
>>
>>
<anyAttribute namespace="##other"
>> processContents="lax" />
>>
>> </complexContent>
>>
>> </complexType>
>>
>>
>> Yours, Mike.
>>
>> Strategist - Emerging Technologies, SCA & SDO.
>> Co Chair OASIS SCA Assembly TC.
>> IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great
Britain.
>> Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
Email:
>> mike_edwards@uk.ibm.com
>>
>>
>> ------------------------------------------------------------------------
>>
>> /
>> /
>>
>> /Unless stated otherwise above:
>> IBM United Kingdom Limited - Registered in England and Wales with
>> number 741598.
>> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire
PO6
>> 3AU/
>>
>>
>>
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail. Follow this link to all your TCs in OASIS
at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>
>
---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail. Follow this link to all your TCs in OASIS at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]