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 17 proposal


I come to the exact opposite conclusion.

An included composite should not circumvent the resolution mechanism of 
the including composite (scoped to the contribution of the including 
composite + imports). I also do not see this different from the scenario 
where a <implementation.composite> points to a composite QName. Where do 
the dependent composite/artifacts, if any, get pulled from? Similarly, 
in an include element all we do is point to the composite QName. This 
QName is resolved per the usual resolution rules (existing contribution 
+ imports). Once the composite QName is resolved, there may be other 
artifact NS (similar to the scenario of implementation.composite) such 
as additional composites, java class files WSDL/Schema etc that need to 
be resolved. I believe this should follow the same rules for resolution 
as before. This, in fact, makes a lot more sense for <include> as there 
is no encapsulation (unlike that of implementation.composite) for include.

Come to think of it, this kind of situation appears all the time: wsdl 
has imports/includes, schema has imports/includes. If I get a wsdl from 
a 'foreign' contribution and that WSDL has an import of a well-known 
WSDL, and I happen to have that well-know WSDL in my 'home' 
contribution, I would most definitely want to use the one in my 'home' 
contribution. Not the one from the 'foreign' contribution as I have no 
guarantee that it is not changed.

Comments?

-Anish
--

Michael Rowley wrote:
> I assume that the QName resolution issue comes up when the including
> composite and the included composite are in different contributions.  I
> suspect that the semantics that users would prefer would be for QNames
> to be resolved in the context of the contribution of the _included_
> composite.  
> 
> This way the contribution of the included composite could contain that
> composite and all of its related artifacts.  The contribution of the
> including composite would only need to import the namespace of the
> composite that it includes.
> 
> [Sentences including "included" and "including" get very convoluted
> :-(.]
> 
> Michael
> 
> -----Original Message-----
> From: Anish Karmarkar [mailto:Anish.Karmarkar@oracle.com] 
> Sent: Tuesday, February 05, 2008 3:52 PM
> To: Scott Vorthmann
> Cc: OASIS Assembly
> Subject: Re: [sca-assembly] Issue 17 proposal
> 
> I missed the other half. Thanks for pointing that out. For some reason I
> 
> thought issue 24 [1] dealt with that. AFAICT, 17 and 24 are the same.
> 
> SCA does not define a component model a la WSDL 2.0. All we have is 
> Infoset. Not sure what you were thinking wrt to a formal proposal. I 
> would be interested in seeing it. Wrt Qname resolution, my inclination 
> is to say that all the resolutions happen in the context of the 
> including composite. When u do an include there is no encapsulation, 
> everything belongs to the including composite. The including composite 
> defines the scope (property names, target names etc -- target names in 
> either composite can freely mix service names from both composites) and 
> the resolution mechanism. IOW, given a composite that contains one or 
> more sca:include elements, there exists an equivalent composite without 
> any sca:include elements whose characteristics are exactly the same. The
> 
> rules in my proposal are for mapping a composite with include elements 
> to one without.
> 
> Given that we don't have a formal component model a la WSDL 2.0, maybe 
> equivalence rules is how we should state it in the spec.
> 
> Comments?
> 
> -Anish
> --
> 
> [1] http://www.osoa.org/jira/browse/ASSEMBLY-24
> 
> Scott Vorthmann wrote:
>> Anish,
>>
>> I think the proposal as you've laid it out is reasonably sound, but I 
>> think it addresses only half of issue 17 as captured.  I don't see 
>> anything in your proposal to define when QNames, etc. are resolved.
> (I 
>> regard this as the thornier half of 17.)  Further, since your proposal
> 
>> defines include at something like an XML Infoset level, it almost 
>> exacerbates the QName problem... how would you require that "QNames
> have 
>> already been resolved" if include is happening at this low level?
>>
>> My suggestion is that we need to define include at the level of
> naming, 
>> not at the level of XML.  In essence, we'd be saying that wire
> elements 
>> (including those implied by "target=") in either composite can freely 
>> mix component/service names from either composite.  Something similar 
>> would be required for property names.  This achieves the goal of 
>> include, and makes the XML issues moot.  I'd be happy to make a more 
>> formal proposal along these lines, but perhaps we could have a little 
>> discussion first.
>>
>> Scott
>>
>> On Feb 5, 2008, at 12:31 AM, Anish Karmarkar wrote:
>>
>>> I took an action to provide a proposal to resolve issue 17 [1]. Here 
>>> it is.
>>>
>>> The proposal in this email was discussed as an errata for SCA 1.0 in
>>> OSOA, but it was decided that it resulted in too much change to be
>>> considered an errata and therefore not implemented. The proposal
> below
>>> was worked on by several folks in OSOA including Henning Bloom, Dave
>>> Booz, Scott Vorthmann (hope I didn't miss anyone). But it should not
> be
>>> construed that they agree with all the aspects of this proposal.
>>>
>>> I. Current problems with the spec:
>>>
>>> 1) inclusion is not defined recursively. I.e., it does not say what
> is
>>> supposed to happen if an included composite contains an include
> (which
>>> the spec says is allowed).
>>> 2) It is defined as a textual include, which it most certainly isn't.
>>> 3) Attributes (namespace decl, 'local' etc) on the included composite
>>> are completely ignored.
>>> 4) The current wording also says (through an example) that the
> composite
>>> resulting from the inclusion must be complete. This isn't true if
> there
>>> is recursive inclusion. Only a deployable composite needs to be
> complete.
>>> II. Proposal:
>>>
>>> 1) Attributes 'targetNamespace', 'name', 'constrainingType' and
> 'local'
>>> on the included composite are thrown away. For constraints on 'local'
>>> see #4 below.
>>> Rationale: composite inclusion results in losing the
>>> encapsulation/scoping. Element children of the included composite are
>>> now part of the including composite and are scoped to the the
> including
>>> composite. Therefore, the attributes 'targetNamespace' and 'name' of
> the
>>> included composite have no relevance.
>>> 2) All NS decl on the included composite are inherited by the each of
>>> the child elements of the included composite if they are inscope (not
>>> overridden).
>>> Rationale: Element and attributes are (and can be) of type xs:QName.
>>> This requires inscope NS decl/binding.
>>> 3) Attribute 'autowire', if specified on the included composite, is
>>> included on all containing component elements unless the containing
>>> component already specifies that attribute.
>>> Rationale: By sticking autowire on the composite it is inherited by
> the
>>> contained composites. It is a nice short cut. The intention of the
>>> creator of the composite is to autowire the components, therefore
> this
>>> should be retained on inclusion.
>>> 4) If the included composite has the value 'true' for the attribute
>>> 'local' then the including composite must have the same value for the
>>> 'local' attribute. If not, that is considered an error.
>>> Rationale: This is based on the assertion that local="true" is a
>>> constraint, and that constraints must not be arbitrarily removed.
>>> Components which are not required to be collocated, can be
> collocated,
>>> where as the converse is not necessarily true.
>>> 5) Attributes 'requires' and 'policySet', if present on the included
>>> composite, are "merged" with corresponding attribute on the
> containing
>>> component, service and reference elements. "merge" here means a set 
>>> union.
>>> Rationale: since they are constraints that must not be overridden,
> they
>>> are merged.
>>> 6) Extension attribute ,if present on the included composite, must
>>> follow the rules defined for that extension. Authors of attribute
>>> extensions on the composite element must define rules for inclusion.
>>> Rationale: depending on the extension, there may be various ways to
> deal
>>> with attribute extensibility. It does not seem right to define a one
>>> size fits all. Perhaps a default behavior may be appropriate.
>>>
>>> III. Note
>>>
>>> This proposal does *not* address the issue of xml:base occurring on
> the
>>> <composite> element of the included composite. I think it is
> important,
>>> but given the fact that artifacts in SCA (composites, bindings etc)
> are
>>> identified by QNames, this is less of a problem.
>>>
>>> IV. Wording changes:
>>>
>>> Word document with change bars for relevant parts of section 6.6
> (WD02)
>>> attached. Note that I have not modified/added examples to demonstrate
>>> the changes. We might want to add additional examples to illustrate
> the
>>> changes.
>>>
>>> Comments?
>>>
>>> -Anish
>>> -- 
>>>
>>> [1] http://www.osoa.org/jira/browse/ASSEMBLY-17
>>> <assembly-issue-17-proposal.doc><ATT8019818.txt>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this mail list, you must leave the OASIS TC that
>> generates this mail.  You may a link to this group and 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.  You may a link to this group and all your TCs in
> OASIS
> at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
> 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]