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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

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


Subject: ISSUE 46: equals() method on ServiceReference and CallableReference


 
http://www.osoa.org/jira/browse/JAVA-46

 

Von: Mark Combellack [mailto:mcombellack@avaya.com]
Gesendet: Donnerstag, 22. Mai 2008 10:47
An: sca-j@lists.oasis-open.org; Simon Nash
Betreff: RE: [sca-j] NEW ISSUE: equals() method on ServiceReference and CallableReference

Hi Simon,

 

I’ve had another chat with the user that originally raised this issue. From their point of view what they want to conceptually ask is:

 

“For two ServiceReferences A and B, will invoking A.getService().someOperation() and B.getService().someOperation() result in the same target Component running the code twice?”

 

 

 

On the question of whether the ServiceReferences use different binding – the user does not really care. From the user’s point of view, the binding that is used is a deployment issue and should not affect the code in the Component Implementation. Currently, when writing a Component implementation, the developer does not need to worry about which binding is used to connect Components/Services. This is one of the major benefits of SCA. Therefore, it should be irrelevant in the comparison.

 

However, having said that the binding is irrelevant, perhaps in some cases the binding may be relevant.

 

I would like to propose the following:

 

If we decide that comparing the Binding is important then:

 

  • ServiceReference.equals() method – ServiceReferences are considered equals if they refer to the same SCA Service and Conversation (if Conversational) and use the same binding.
  • Add new method such as ServiceReference.isSameTarget() – ServiceReferences are considered the same if they refer to the same SCA Service and Conversation (if Conversational)

 

If we decide that comparing the Binding is irrelevant then:

 

  • ServiceReference.equals() method – ServiceReferences are considered the same if they refer to the same SCA Service and Conversation (if Conversational)

 

 

How does this sound?

 

Thanks,

 

Mark

Mark Combellack| Software Developer| Avaya | Eastern Business Park | St. Mellons | Cardiff | CF3 5EA | Voice: +44 (0) 29 2081 7624 | mcombellack@avaya.com 


From: Simon Nash [mailto:NASH@uk.ibm.com]
Sent: 20 May 2008 18:02
To: sca-j@lists.oasis-open.org
Subject: Re: [sca-j] NEW ISSUE: equals() method on ServiceReference and CallableReference

 


Mark,
What does it mean for two service references to be equal?  They could have different bindings (and therefore completely different endpoint URIs) but connect to the same SCA service.  If we want to support equality for such cases, I think the serialized form of a service reference would have to contain some unique ID for the service that it connects to.  It's not clear to me how this unique ID could be generated reliably.  Defining this would require an SCA Assembly issue, not an SCA Java issue.

Then there's the question of what effect the intents/policysets applying to a service reference have on its equality semantics.  If I have two service references for the same service, but one is secure and one isn't, are they equal?  For the use case you have in mind, would you want them to be treated as equal?

    Simon

Simon C. Nash, IBM Distinguished Engineer
Member of the IBM Academy of Technology
Tel. +44-1962-815156  Fax +44-1962-818999


ashok malhotra <ashok.malhotra@oracle.com>

20/05/2008 15:45

Please respond to
ashok.malhotra@oracle.com

To

Mark Combellack <mcombellack@avaya.com>

cc

sca-j@lists.oasis-open.org

Subject

Re: [sca-j] NEW ISSUE: equals() method on ServiceReference and CallableReference

 

 

 




If the equals method involves comparing URIs for equality, do we need to
say some words
about how URIs should be compared? I can provide some words if needed.

All the best, Ashok


Mark Combellack wrote:
>
> RAISER: Mark Combellack
>
> TARGET: SCA Java Common Annotations and APIs
>
> DESCRIPTION:
>
> The equals() and hashCode() methods are some of the fundamental Java
> Object methods that are used for comparing objects. The SCA Java
> specifications do not describe what should happen when the equals() or
> hashCode() methods are called on a ServiceReference or CallableReference.
>
> Without an explicit statement, SCA developers will not know whether
> they can compare ServiceReferences and CallableReferences.
>
> I’ve sent an email to the SCA-Java list (see link below) that contains
> an example usage scenario.
>
>
http://lists.oasis-open.org/archives/sca-j/200805/msg00037.html
>
>
> PROPOSAL:
>
> Update the specification to state that the equals() method for
> ServiceReference can be used to test whether they refer to the same
> target.
>
> Update the specification to state that the equals() method for
> CallableReference can be used to test whether they refer to the same
> target.
>
> Update the specification to state that the hashCode() method for
> ServiceReference and CallableReference must comply with the hashCode()
> contract as defined by Java - see
>
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()
> <
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode%28%29>
>
>
> Mark Combellack| Software Developer| Avaya | Eastern Business Park |
> St. Mellons | Cardiff | CF3 5EA | Voice: +44 (0) 29 2081 7624 |
> mcombellack@avaya.com <
mailto:%7Cmcombellack@avaya.com>
>

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





 

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]