[ 
https://issues.apache.org/jira/browse/TUSCANY-3959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13128757#comment-13128757
 ] 

Simon Laws commented on TUSCANY-3959:
-------------------------------------

I do think that this highlights an issue but not with the piece of code 
referenced. The code referenced is trying to determine whether there are any 
intents that have no policy sets and I believe it's operation is correct. The 
policy match code as it stands does just that. Matches policy. It doesn't 
attempt to match intents but turns them into policy sets and matches those. The 
problem, as described, highlights that "mayProvide" intents don't give rise to 
policy sets as the policy it natively provided by the binding so it's possible 
to have intents at the reference that don't match the service and not detect 
it. 

We could the test described but separately from the test looking for 
unsatisfied intents. I'll look into it. 
                
> Intent matching is not performed for intents that may be provided by the 
> binding
> --------------------------------------------------------------------------------
>
>                 Key: TUSCANY-3959
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3959
>             Project: Tuscany
>          Issue Type: Bug
>    Affects Versions: Java-SCA-2.0
>            Reporter: Greg Dritschler
>
> EndpointReferenceBinderImpl.haveMatchingPolicy() matches the intents 
> specified on a reference bindiing to those specified on a potential target 
> service binding.  For some reason, it skips over intents that may be provided 
> by the binding.
>             } else if (bindingType != null &&
>                        bindingType.getMayProvidedIntents().contains(intent)){
>                 eprIntents.remove(intent);
> Even though the binding provides the intent when requested to do so, it still 
> should be matched.  It doesn't make sense to allow the client to tell the 
> reference binding to do something if the service binding isn't doing the same 
> thing.  Note that this applies only to interaction intents.  Implementation 
> intents (such as transactedOneWay) SHOULD NOT be matched.  So the above logic 
> should be changed such that:
> a) if the intent is an interaction intent, remove it if the endpoint also has 
> the endpoint
> b) if the intent is an implementation intent, remove it
> ** NOTE  **  TUSCANY-3958 must be addressed before this JIRA.  TUSCANY-3958 
> reports that intents are not present in a remote endpoint.  Obviously we have 
> to fix getting the intents in remote endpoints before we fix matching them.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to