You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Noel Grandin (JIRA)" <ji...@apache.org> on 2009/04/09 20:30:12 UTC

[jira] Created: (PIVOT-67) Component#userData should allow multiple clients to co-exist

 Component#userData should allow multiple clients to co-exist
-------------------------------------------------------------

                 Key: PIVOT-67
                 URL: https://issues.apache.org/jira/browse/PIVOT-67
             Project: Pivot
          Issue Type: Improvement
          Components: wtk
    Affects Versions: 1.1
            Reporter: Noel Grandin
            Priority: Minor


It is very handy to be able to stash extra info on a component, but when multiple libraries all want to do this, it quickly gets out of hand.
    
When multiple libraries all want to do this, they can conflict e.g. if I add LibraryA and LibraryB to my pivot application, and both libraries want to enhance standard Pivot behaviour by stashing stuff in the Component, they
will overwrite each others UserData.

A better solution would be to use a map of values with methods like
   void putUserData(Class key, Object userdata)
   Object getUserData(Class key) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (PIVOT-67)

Posted by Noel Grandin <no...@gmail.com>.
When you start looking at API compatibility, the Eclipse PDE
environment has a tool for comparing API's between versions.
Could be useful.

On Thu, Apr 9, 2009 at 21:09, Greg Brown <gk...@mac.com> wrote:
> backward compatibility at the moment. In the future, we'll probably want to take a more structured approach.

Re: [jira] Updated: (PIVOT-67)

Posted by Greg Brown <gk...@mac.com>.
OK - I just renamed 1.1.1 to 1.2, and 1.2 to 1.3. This means that API changes are OK. Since we're still incubating and don't have a strong user base, it probably doesn't make sense to put a lot of effort into backward compatibility at the moment. In the future, we'll probably want to take a more structured approach.

On Thursday, April 09, 2009, at 02:56PM, "Greg Brown" <gk...@mac.com> wrote:
>Realized just after I sent this that this isn't sufficient, because we need to change the listener interface. Maybe we need to create a 1.1.1 branch.
> 
>On Thursday, April 09, 2009, at 02:54PM, "Greg Brown" <gk...@mac.com> wrote:
>>>I would have preferred to maintain backwards compatibility, but the listener API had to be changed anyway.
>>
>>We don't want to make API changes that would break backwards compatibility in maintenance releases. I suggest deprecating the old signature and adding a new one. We can remove the old one when we release v1.2.
>>
>>
>>
>
>

Re: [jira] Updated: (PIVOT-67)

Posted by Greg Brown <gk...@mac.com>.
Realized just after I sent this that this isn't sufficient, because we need to change the listener interface. Maybe we need to create a 1.1.1 branch.
 
On Thursday, April 09, 2009, at 02:54PM, "Greg Brown" <gk...@mac.com> wrote:
>>I would have preferred to maintain backwards compatibility, but the listener API had to be changed anyway.
>
>We don't want to make API changes that would break backwards compatibility in maintenance releases. I suggest deprecating the old signature and adding a new one. We can remove the old one when we release v1.2.
>
>
>

Re: [jira] Updated: (PIVOT-67)

Posted by Greg Brown <gk...@mac.com>.
>I would have preferred to maintain backwards compatibility, but the listener API had to be changed anyway.

We don't want to make API changes that would break backwards compatibility in maintenance releases. I suggest deprecating the old signature and adding a new one. We can remove the old one when we release v1.2.


[jira] Updated: (PIVOT-67) Component#userData should allow multiple clients to co-exist

Posted by "Noel Grandin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIVOT-67?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Noel Grandin updated PIVOT-67:
------------------------------

    Attachment: patch.txt

I would have preferred to maintain backwards compatibility, but the listener API had to be changed anyway.

Maybe I should keep the old methods anyhow and have 2 methods on the listener API?

>  Component#userData should allow multiple clients to co-exist
> -------------------------------------------------------------
>
>                 Key: PIVOT-67
>                 URL: https://issues.apache.org/jira/browse/PIVOT-67
>             Project: Pivot
>          Issue Type: Improvement
>          Components: wtk
>    Affects Versions: 1.1
>            Reporter: Noel Grandin
>            Priority: Minor
>         Attachments: patch.txt
>
>
> It is very handy to be able to stash extra info on a component, but when multiple libraries all want to do this, it quickly gets out of hand.
>     
> When multiple libraries all want to do this, they can conflict e.g. if I add LibraryA and LibraryB to my pivot application, and both libraries want to enhance standard Pivot behaviour by stashing stuff in the Component, they
> will overwrite each others UserData.
> A better solution would be to use a map of values with methods like
>    void putUserData(Class key, Object userdata)
>    Object getUserData(Class key) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (PIVOT-67) Component#userData should allow multiple clients to co-exist

Posted by "Greg Brown (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIVOT-67?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Greg Brown updated PIVOT-67:
----------------------------

    Fix Version/s: 1.2
         Assignee: Greg Brown

>  Component#userData should allow multiple clients to co-exist
> -------------------------------------------------------------
>
>                 Key: PIVOT-67
>                 URL: https://issues.apache.org/jira/browse/PIVOT-67
>             Project: Pivot
>          Issue Type: Improvement
>          Components: wtk
>    Affects Versions: 1.1
>            Reporter: Noel Grandin
>            Assignee: Greg Brown
>            Priority: Minor
>             Fix For: 1.2
>
>         Attachments: patch.txt
>
>
> It is very handy to be able to stash extra info on a component, but when multiple libraries all want to do this, it quickly gets out of hand.
>     
> When multiple libraries all want to do this, they can conflict e.g. if I add LibraryA and LibraryB to my pivot application, and both libraries want to enhance standard Pivot behaviour by stashing stuff in the Component, they
> will overwrite each others UserData.
> A better solution would be to use a map of values with methods like
>    void putUserData(Class key, Object userdata)
>    Object getUserData(Class key) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (PIVOT-67) Component#userData should allow multiple clients to co-exist

Posted by "Greg Brown (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIVOT-67?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Greg Brown resolved PIVOT-67.
-----------------------------

    Resolution: Fixed

>  Component#userData should allow multiple clients to co-exist
> -------------------------------------------------------------
>
>                 Key: PIVOT-67
>                 URL: https://issues.apache.org/jira/browse/PIVOT-67
>             Project: Pivot
>          Issue Type: Improvement
>          Components: wtk
>    Affects Versions: 1.1
>            Reporter: Noel Grandin
>            Assignee: Greg Brown
>            Priority: Minor
>             Fix For: 1.2
>
>         Attachments: patch.txt
>
>
> It is very handy to be able to stash extra info on a component, but when multiple libraries all want to do this, it quickly gets out of hand.
>     
> When multiple libraries all want to do this, they can conflict e.g. if I add LibraryA and LibraryB to my pivot application, and both libraries want to enhance standard Pivot behaviour by stashing stuff in the Component, they
> will overwrite each others UserData.
> A better solution would be to use a map of values with methods like
>    void putUserData(Class key, Object userdata)
>    Object getUserData(Class key) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.