OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

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



Folks,

I think the argument between multiplicity="0..0" and wiredByImpl="true" is one that we can
debate.  I don't think it is the most important part of the problem.

The real debate this has stirred up is what it means to promote a wiredByImpl reference:
a) if it's allowed, what does it mean?
b) if it's not allowed, then the spec needs to say so

Let's assume that it is allowed.  So I can validly promote a component reference which is
marked as "wiredByImpl".

One thing I note is that "wiredByImpl" is like an intent.  It cannot be removed no matter how
many times I promote the reference,  (Perhaps it should be modelled as an intent???)

OK, so the promoting composite reference MUST also be "wiredByImpl". (We will definitely
need to add this restriction into the spec).

Now, if the component reference has some configuration (policies, I think it is limited to
policies - I can't specify a binding since a reference binding MUST contain an endpoint
definition - and by definition you can't specify an endpoint target for a wiredByImpl
reference), what happens??

I assume that the composite reference may add intents - and so may the configuration of
that composite reference by the component at the next higher level.  The added intents
must not be mutually exclusive with intents on the component reference.  As for PolicySets
I assume that any policy sets expressed on the composite reference (or expressed in a
higher level component configuring that reference) replace those on the promoted
component reference.  Ah, except that I can't define the Binding that the reference is going
to use.  And since PolicySets imply a Binding (usually) then I think we may be limited to
intents....

So this then is the meaning of promoting a wiredByImpl reference - you get the chance to
spell out the policies you want to apply to the reference.


Let me make a parting shot.  One final possibility is that promotion of wiredByImpl component
references is disallowed.  In that case, I get to set policies via the external attachment mechanism.
So I can achieve the same result in a different way.

I'm OK with either solution - I'm interested to hear everyone's opinions.


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: Anish Karmarkar <Anish.Karmarkar@oracle.com>
To: OASIS Assembly <sca-assembly@lists.oasis-open.org>
Date: 25/11/2008 23:12
Subject: Re: [sca-assembly] [Issue 95] "wiredByImpl" is an invalid attribute for a Composite Reference





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









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]