[
https://issues.apache.org/jira/browse/TUSCANY-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12895004#action_12895004
]
Brent Daniel commented on TUSCANY-3642:
---------------------------------------
I think Tuscany is checking both before and after converting the unqualified
form of the intent to the default qualified form, which is probably wrong.
However, I'm wondering if this test case is correct. Shouldn't the
"sca:confidentiality" on the service be ignored since it is exclusive with an
intent that appears lower in the structural hierarchy? This is how Tuscany is
handling this today, and why you get an error reported when
confidentiality.transport is excluded instead of confidentiality.
In the first case, Tuscany will apply "confidentiality" to the Interface
element since it doesn't conflict with "Joe". Later, when confidentiality is
converted to the qualified form, Tuscany reports the mutual exclusion error.
In the second case, Tuscany will not apply "confidentiality" to the Interface
element since it conflicts with "Joe". The Interface element never acquires a
set of Intents that are exclusive with each other, so Tuscany never reports an
error.
The test case also succeeds if you modify the composite so that "Joe" and its
policy set are specified on the Interface element.
> Tuscany does not evaluate mutually exclusive intents correctly where one
> intent is Qualifiable
> ----------------------------------------------------------------------------------------------
>
> Key: TUSCANY-3642
> URL: https://issues.apache.org/jira/browse/TUSCANY-3642
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Policy
> Affects Versions: Java-SCA-2.0-M5
> Reporter: Mike Edwards
> Priority: Minor
> Fix For: Java-SCA-2.0
>
>
> Where one intent is declared as being mutually exclusive with a second
> intent, but the second intent is a qualifiable intent and the exclusion
> statement names the root qualifiable intent rather than one of the qualified
> forms, then Tuscany does not flag the intents as "mutually exclusive" when
> the unqualified form of the intent appears on an element with the first
> intent.
> This was discovered with the recently updated form of OASIS testcase ASM_8014.
> This testcase defines an intent "Joe":
> <intent name="Joe" constrains="sca:binding" intentType="interaction"
> excludes="sca:confidentiality"/>
> note that this is exclusive of sca:confidentiality intent, which is
> qualifiable with confidentiality.transport and confidentiality.message the
> qualified forms.
> When a service is declared where the interface has sca:confidentiality
> applied and has test:Joe applied to the service element itself, Tuscany does
> not treat these two intents as mutually exclusive and operates incorrectly.
> Note that changing the exclude statement above to read
> "sca:confidentiality.transport" causes Tuscany to spot the mutual exclusion
> and to raise an exception. So it appears as if Tuscany is converting the
> unqualified form of the intent to the default qualified form before checking
> for mutual exclusion. This is incorrect - mutual exclusion when it uses the
> unqualified form of an intent means "excludes all forms of this intent -
> unqualified and all qualified versions".
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.