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