Cool. Thanks.
On Thu, Jun 17, 2010 at 18:41, Greg Brown <[email protected]> wrote: > OK, it didn't look too bad so I went ahead and checked it in. I didn't end up > doing it exactly as you suggested, but the end result should be the same (I > pass the internal processing namespace prefix and the annotation class to the > BeanSerializer constructor, so BeanSerializer doesn't need to know anything > about "wtkx" or @WTKX). > > > On Jun 17, 2010, at 10:35 AM, Greg Brown wrote: > >> Yeah, OK. The main problem is that many developers aren't going to read the >> release notes, and they won't know why their app suddenly doesn't compile. >> There's an easy fix, but it would be good to avoid that initial frustration >> if possible. >> >> Let me prototype it and see how it looks. >> >> >> On Jun 17, 2010, at 9:49 AM, Noel Grandin wrote: >> >>> Hi >>> >>> It's the difference between >>> (a) having to do a big-bang conversion when switching to Pivot2.0 >>> and >>> (b) being able to get things running quickly, and then make the updates >>> piece-meal. >>> >>> Personally, I have no real problem either way, because I don't have any >>> WTKX files to convert of my own. >>> >>> I just think gradual upgrade paths are a good habit to get into. >>> I personally hate it when I upgrade one of my dependencies and have to >>> spend ages just getting the thing compiling before I can even start testing. >>> >>> Just my 2c, >>> Noel Grandin >>> >>> Greg Brown wrote: >>>> I understand the desire to provide a more "backwards-compatible" solution. >>>> However, I see two main issues with it: >>>> >>>> 1) As you noted, it is still a bit of a hack, even if we do something >>>> along the lines of what you suggest. >>>> >>>> 2) It provides an incentive for developers to not update their code to use >>>> the new conventions. At some point, we'll need to drop the backwards >>>> compatibility and they will have to upgrade - I don't think it really >>>> makes a difference if we do that for version 2.0 or version 2.1. >>>> >>>> I created an Ant script yesterday that will perform the conversion. It's >>>> really easy to run - just point it at the directory you want to update. I >>>> used it to convert the tests and tutorials projects and the only issue I >>>> ran into was how to bulk-add the new .bxml files to SVN. However, the >>>> one-line shell command Mike S. provided took care of that: >>>> >>>> >>>>> find ./ -name \*.bxml -exec svn add {} \; >>>>> >>>> G >>>> >>>> On Jun 17, 2010, at 3:30 AM, Noel Grandin wrote: >>>> >>>> >>>>> Hi >>>>> >>>>> I had an idea while out cycling yesterday. >>>>> How about we add code that looks something like this: >>>>> >>>>> for (java.lang.annotation.Annotation ann : >>>>> field.getAnnotations()) { >>>>> if >>>>> (ann.annotationType().getName().equals("org.apache.pivot.wtkx.WTKX")) { >>>>> ....process as if we hit the BXML annotation... >>>>> } >>>>> } >>>>> >>>>> It's a bit of a hack, but it will allow BeanSerializer to decode "old" >>>>> files while not having an explicit reference to the WTKX annotation. >>>>> >>>>> Then we can mark WTKX as deprecated and give people some grace to port >>>>> their files. >>>>> >>>>> Regards, Noel. >>>>> >>>>> Greg Brown wrote: >>>>> >>>>>> That's the problem - we can't easily support backwards compatibility. I >>>>>> had originally hoped to have WTKXSerializer extend BeanSerializer in >>>>>> Pivot 1.6, and then drop WTKXSerializer in 2.0. However, we can't do >>>>>> that with @WTKX/@BXML, because annotations can't inherit. So, we're kind >>>>>> of stuck with an all-or-nothing approach, unless we introduce a >>>>>> cross-project dependency such that BeanSerializer also looks for WTKX >>>>>> annotations, which I really don't want to do. That is why I am >>>>>> suggesting that we go to version 2.0. >>>>>> >>>>>> I was thinking that we could provide a script that will do a >>>>>> search/replace/rename so developers don't need to do this manually. That >>>>>> should at least make the transition a little easier. >>>>>> >>>>>> On Jun 15, 2010, at 3:53 AM, Noel Grandin wrote: >>>>>> >>>>>> >>>>>> >>>>>>> Sure, but surely we can provide aliases for those things internally so >>>>>>> existing files continue to work? >>>>>>> Maybe with a runtime warning to System.out so people know that they need >>>>>>> to upgrade at some point. >>>>>>> >>>>>>> It just seems a little harsh to dump that amount of work on people when >>>>>>> we can reasonably easily provide a gradual upgrade path. >>>>>>> >>>>>>> -- Noel >>>>>>> >>>>>>> Greg Brown wrote: >>>>>>> >>>>>>> >>>>>>>> Files with a .wtkx extension will still work fine. However, the "wtkx" >>>>>>>> namespace prefix will change to "bxml", the annotation will change to >>>>>>>> @BXML, and the serializer will change to BeanSerializer, so for >>>>>>>> consistency I think we'd want to recommend changing the file extension >>>>>>>> as well. >>>>>>>> Greg >>>>>>>> >>>>>>>> >>>>>>>> On Jun 14, 2010, at 4:52 PM, Noel Grandin wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> I don't have a problem with the version numbering, but is there any >>>>>>>>> reason why you can't continue to support the WTKX extension for >>>>>>>>> backwards compatibility? >>>>>>>>> >>>>>>>>> -- Noel >>>>>>>>> >>>>>>>>> On Mon, Jun 14, 2010 at 02:13, Greg Brown <[email protected]> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> I'd really like to refactor WTKXSerializer to BeanSerializer and >>>>>>>>>> move it to Pivot Core for the next release. However, I think this >>>>>>>>>> change is too disruptive for the 1.x line. As a developer, I don't >>>>>>>>>> think I would be too pleased to discover that I need to update all >>>>>>>>>> of my WTKX files to BXML when migrating from Pivot 1.5 to Pivot 1.6. >>>>>>>>>> As a result, I'd like to suggest that the next major version of >>>>>>>>>> Pivot be 2.0. >>>>>>>>>> >>>>>>>>>> We currently have Pivot 1.5.1 in the pipeline and can do additional >>>>>>>>>> point releases for 1.5 as needed. We'll reshuffle the items >>>>>>>>>> currently assigned to 1.6 and 2.0 into 2.0, 2.1, etc. as >>>>>>>>>> appropriate. Any objections? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Greg >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >
