You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Dmitry Gusev <dm...@gmail.com> on 2021/03/31 16:39:43 UTC

Re: [ANNOUNCEMENT] Tapestry 5.6.2 released

Hello,

I'm upgrading one of our apps to latest 5.6.3 and found that this release
broke binary compatibility after tapestry-json improvements:

https://issues.apache.org/jira/browse/TAP5-2640

Libraries compiled with < 5.6.2 _and_ using JSONObject class,
namely JSONObject#get(String), will fail with NoSuchMethodError at runtime.

Such libraries will need to be recompiled using 5.6.2+

Release notes for 5.6.2 miss this detail.

On Wed, Feb 24, 2021 at 3:01 PM Thiago H. de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> Tapestry 5.6.2 is a drop-in replacement for Tapestry 5.4, 5.5 and 5.6
> releases. It's a recommended upgrade for 5.6.1 and 5.6.0. To upgrade, just
> update the dependency in your build configuration (Maven POM, Gradle build
> script, etc.) – or Download the new JAR file -- and the new version will
> just work. However, please review the How to Upgrade instructions before
> upgrading.
>
> The most interesting improvement is  TAP5-2640: better exceptions in
> tapestry-json code, plus JSONArray now implementing Collection and
> JSONObject implementing Map.
>
> Full details at https://tapestry.apache.org/release-notes-562.html.
>
> Thanks for everyone involved in this release!
>
> Happy coding!
>
> --
> Thiago
>


-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com

Re: [ANNOUNCEMENT] Tapestry 5.6.2 released

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Thu, Apr 8, 2021 at 2:49 AM Ben Weidig <be...@netzgut.net> wrote:

> Hi!
>

Hello!


> even though I've mentioned the signature changes as a risk in the ticket,
> it slipped my mind when it got merged into 5.6.x and not just 5.7.
>

The merge on 5.6.x is on me and I apologize for that. Considering the
breaking changes, it shouldn't have been done.


> There are 2 signature changes in JSONObject to match the Map interface:
>
> * Object get(String name) -> Object get(Object name)
> * JSONObject putAll(Map<String, ?> newProperties) -> void putAll(Map<?
> extends String, ? extends Object> newProperties)
>
> The first one could have been augmented with the previous one as
> @Deprecated, but the second one wouldn't work due to type erasure, so it
> would've been a breaking change either way.
>
> If you like I could make the changes to the release notes, and maybe wrote
> a few sentences about the JSON module. And I could update the Type Coercion
> page with the new JSR310 coercers.
>

Please do it.


> But I don't know how to edit the project page...
>

Basically, go to https://cwiki.apache.org/confluence/, log in with your ASF
credentials, then go here:
https://cwiki.apache.org/confluence/display/TAPESTRY/Home. From there, you
can click on links or use search to find specific pages. You should already
have edition permissions.

Cheers!


>
> Ben
>
>
> On Wed, Apr 7, 2021 at 11:43 PM Thiago H. de Paula Figueiredo <
> thiagohp@gmail.com> wrote:
>
> > On Wed, Mar 31, 2021 at 1:40 PM Dmitry Gusev <dm...@gmail.com>
> > wrote:
> >
> > > Hello,
> > >
> >
> > Hello!
> >
> >
> > > I'm upgrading one of our apps to latest 5.6.3 and found that this
> release
> > > broke binary compatibility after tapestry-json improvements:
> > >
> > > https://issues.apache.org/jira/browse/TAP5-2640
> > >
> > > Libraries compiled with < 5.6.2 _and_ using JSONObject class,
> > > namely JSONObject#get(String), will fail with NoSuchMethodError at
> > runtime.
> > >
> >
> > The changes are indeed mentioned in
> > https://tapestry.apache.org/release-notes-562.html, but I didn't know
> they
> > would have binary compatibility broken. I'm sorry for that.
> >
> >
> > >
> > > Such libraries will need to be recompiled using 5.6.2+
> > >
> > > Release notes for 5.6.2 miss this detail.
> > >
> > > On Wed, Feb 24, 2021 at 3:01 PM Thiago H. de Paula Figueiredo <
> > > thiagohp@gmail.com> wrote:
> > >
> > > > Tapestry 5.6.2 is a drop-in replacement for Tapestry 5.4, 5.5 and 5.6
> > > > releases. It's a recommended upgrade for 5.6.1 and 5.6.0. To upgrade,
> > > just
> > > > update the dependency in your build configuration (Maven POM, Gradle
> > > build
> > > > script, etc.) – or Download the new JAR file -- and the new version
> > will
> > > > just work. However, please review the How to Upgrade instructions
> > before
> > > > upgrading.
> > > >
> > > > The most interesting improvement is  TAP5-2640: better exceptions in
> > > > tapestry-json code, plus JSONArray now implementing Collection and
> > > > JSONObject implementing Map.
> > > >
> > > > Full details at https://tapestry.apache.org/release-notes-562.html.
> > > >
> > > > Thanks for everyone involved in this release!
> > > >
> > > > Happy coding!
> > > >
> > > > --
> > > > Thiago
> > > >
> > >
> > >
> > > --
> > > Dmitry Gusev
> > >
> > > AnjLab Team
> > > http://anjlab.com
> > >
> >
> >
> > --
> > Thiago
> >
>


-- 
Thiago

Re: [ANNOUNCEMENT] Tapestry 5.6.2 released

Posted by Ben Weidig <be...@netzgut.net>.
Hi!

even though I've mentioned the signature changes as a risk in the ticket,
it slipped my mind when it got merged into 5.6.x and not just 5.7.

There are 2 signature changes in JSONObject to match the Map interface:

* Object get(String name) -> Object get(Object name)
* JSONObject putAll(Map<String, ?> newProperties) -> void putAll(Map<?
extends String, ? extends Object> newProperties)

The first one could have been augmented with the previous one as
@Deprecated, but the second one wouldn't work due to type erasure, so it
would've been a breaking change either way.

If you like I could make the changes to the release notes, and maybe wrote
a few sentences about the JSON module. And I could update the Type Coercion
page with the new JSR310 coercers.
But I don't know how to edit the project page...

Ben


On Wed, Apr 7, 2021 at 11:43 PM Thiago H. de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> On Wed, Mar 31, 2021 at 1:40 PM Dmitry Gusev <dm...@gmail.com>
> wrote:
>
> > Hello,
> >
>
> Hello!
>
>
> > I'm upgrading one of our apps to latest 5.6.3 and found that this release
> > broke binary compatibility after tapestry-json improvements:
> >
> > https://issues.apache.org/jira/browse/TAP5-2640
> >
> > Libraries compiled with < 5.6.2 _and_ using JSONObject class,
> > namely JSONObject#get(String), will fail with NoSuchMethodError at
> runtime.
> >
>
> The changes are indeed mentioned in
> https://tapestry.apache.org/release-notes-562.html, but I didn't know they
> would have binary compatibility broken. I'm sorry for that.
>
>
> >
> > Such libraries will need to be recompiled using 5.6.2+
> >
> > Release notes for 5.6.2 miss this detail.
> >
> > On Wed, Feb 24, 2021 at 3:01 PM Thiago H. de Paula Figueiredo <
> > thiagohp@gmail.com> wrote:
> >
> > > Tapestry 5.6.2 is a drop-in replacement for Tapestry 5.4, 5.5 and 5.6
> > > releases. It's a recommended upgrade for 5.6.1 and 5.6.0. To upgrade,
> > just
> > > update the dependency in your build configuration (Maven POM, Gradle
> > build
> > > script, etc.) – or Download the new JAR file -- and the new version
> will
> > > just work. However, please review the How to Upgrade instructions
> before
> > > upgrading.
> > >
> > > The most interesting improvement is  TAP5-2640: better exceptions in
> > > tapestry-json code, plus JSONArray now implementing Collection and
> > > JSONObject implementing Map.
> > >
> > > Full details at https://tapestry.apache.org/release-notes-562.html.
> > >
> > > Thanks for everyone involved in this release!
> > >
> > > Happy coding!
> > >
> > > --
> > > Thiago
> > >
> >
> >
> > --
> > Dmitry Gusev
> >
> > AnjLab Team
> > http://anjlab.com
> >
>
>
> --
> Thiago
>

Re: [ANNOUNCEMENT] Tapestry 5.6.2 released

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Wed, Mar 31, 2021 at 1:40 PM Dmitry Gusev <dm...@gmail.com> wrote:

> Hello,
>

Hello!


> I'm upgrading one of our apps to latest 5.6.3 and found that this release
> broke binary compatibility after tapestry-json improvements:
>
> https://issues.apache.org/jira/browse/TAP5-2640
>
> Libraries compiled with < 5.6.2 _and_ using JSONObject class,
> namely JSONObject#get(String), will fail with NoSuchMethodError at runtime.
>

The changes are indeed mentioned in
https://tapestry.apache.org/release-notes-562.html, but I didn't know they
would have binary compatibility broken. I'm sorry for that.


>
> Such libraries will need to be recompiled using 5.6.2+
>
> Release notes for 5.6.2 miss this detail.
>
> On Wed, Feb 24, 2021 at 3:01 PM Thiago H. de Paula Figueiredo <
> thiagohp@gmail.com> wrote:
>
> > Tapestry 5.6.2 is a drop-in replacement for Tapestry 5.4, 5.5 and 5.6
> > releases. It's a recommended upgrade for 5.6.1 and 5.6.0. To upgrade,
> just
> > update the dependency in your build configuration (Maven POM, Gradle
> build
> > script, etc.) – or Download the new JAR file -- and the new version will
> > just work. However, please review the How to Upgrade instructions before
> > upgrading.
> >
> > The most interesting improvement is  TAP5-2640: better exceptions in
> > tapestry-json code, plus JSONArray now implementing Collection and
> > JSONObject implementing Map.
> >
> > Full details at https://tapestry.apache.org/release-notes-562.html.
> >
> > Thanks for everyone involved in this release!
> >
> > Happy coding!
> >
> > --
> > Thiago
> >
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>


-- 
Thiago