Upgrade Tapestry build to Java 11

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Upgrade Tapestry build to Java 11

Dmitry Gusev
Hi everyone!

Earlier this year I worked on a project where we upgraded all Tapestry apps
of one of our client to Java 11 with source & target compatibility = 11. We
were using custom version of Tapestry with only one patch on top of current
state of the master which I just checked in to the main code base:

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

However I couldn't find a way to write a test for it as it would require
some test classes compiled with Java 11 target compatibility level.

I've found the following issue discussing migration path to Java 11 for the
Tapestry build, but the issue is now closed and there were not conclusion
on what should be done next:

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

I tried to upgrade the build to Java 11 before I found discussion in
TAP5-2588, and I even upgraded most of it while experimenting and got all
the tests green, except tapestry-javadoc module, which at first glance
requires code rewrite and not just library upgrades and minor fixes as it
was with core modules.

I found that current build has some customisations for Java 9, and in
TAP5-2588 there were discussions about supporting Java 10 also, but I don't
think that's necessary at the moment when Java 11 -- current LTS release --
is out, as those are intermediate releases and are already not supported.

So I would suggest to go straight to Java 11 after we release current state
of master (5.5.x).

Starting from 5.6 all releases can remain binary compatible with java 8,
but the build itself may leverage the java 11 compiler to start testing
java 8+ compatibility, as required by TAP5-2611, for example.

What do you think?

Best regards,
Dmitry
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Ben Weidig
Hi Dmitry,

thanks for all the work towards Java 11!

We're trying to get it up and running ourselves but without much luck...

You committed the patch for the private instrumentations, but I don't see
any modifications on the build.gradle, I assume this is because your
suggestion of doing Java 11 support after the release of 5.5.x

Could you give us some pointers how we could build Tapestry 5.5 with
target/source for Java 11?

So far we've done the following trying to get the project to build with
OpenJDK 11 and gradle on the command line including all tests:
- gradle update to 4.10.3
- spock update to 1.2-groovy-2.4
- settings.gradle: remove unnecessary projects (e.g. javadoc, kaptcha,
mongo, clojure etc.)
- build.gradle: jdkMajorVersion convert to int and remove "--add-modules"
for Java 11"
- build.gradle: remove dependencies on tapestry-javadoc (117)
- build.gradle: remove jacoco
- build.gradle: sourceCompatibility/targetCompatibility 11
- build.gradle: idea project languageLevel 11

It's building, but testing is wonky, mostly becausome unit tests are
failing. JUnit tries to run helper classes as Tests (e.g.
AccessMethodsSubject, ProtectedFieldCollaborator), which fails with
initializationError.

Integration tests run in Quantum, but some are failing, but maybe Quantum
is the reason here, didn't dig into it.

Did you ran into any other bigger issues with running your projects on Java
11?

We have a few 100k lines of code and use the IoC heavily for projects
customization and would love to test it on our end and create
issues/patches in Jira if we run into any problems.

Cheers,
Ben

On Sat, Jun 22, 2019 at 11:56 PM Dmitry Gusev <[hidden email]>
wrote:

> Hi everyone!
>
> Earlier this year I worked on a project where we upgraded all Tapestry apps
> of one of our client to Java 11 with source & target compatibility = 11. We
> were using custom version of Tapestry with only one patch on top of current
> state of the master which I just checked in to the main code base:
>
> https://issues.apache.org/jira/browse/TAP5-2611
>
> However I couldn't find a way to write a test for it as it would require
> some test classes compiled with Java 11 target compatibility level.
>
> I've found the following issue discussing migration path to Java 11 for the
> Tapestry build, but the issue is now closed and there were not conclusion
> on what should be done next:
>
> https://issues.apache.org/jira/browse/TAP5-2588
>
> I tried to upgrade the build to Java 11 before I found discussion in
> TAP5-2588, and I even upgraded most of it while experimenting and got all
> the tests green, except tapestry-javadoc module, which at first glance
> requires code rewrite and not just library upgrades and minor fixes as it
> was with core modules.
>
> I found that current build has some customisations for Java 9, and in
> TAP5-2588 there were discussions about supporting Java 10 also, but I don't
> think that's necessary at the moment when Java 11 -- current LTS release --
> is out, as those are intermediate releases and are already not supported.
>
> So I would suggest to go straight to Java 11 after we release current state
> of master (5.5.x).
>
> Starting from 5.6 all releases can remain binary compatible with java 8,
> but the build itself may leverage the java 11 compiler to start testing
> java 8+ compatibility, as required by TAP5-2611, for example.
>
> What do you think?
>
> Best regards,
> Dmitry
>


--

Netzgut GmbH
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Dmitry Gusev
Hi Ben!

I didn't try to compile Tapestry itself to target compatibility = 11,
as I mentioned above it should probably remain java 8 for some time.

It isn't necessary for the time being, we may do so later when we implement
proper jigsaw modules.

For now I was talking mostly about using JDK 11 complier with
source/targetCompatibility=8,
to be able to create Java 11 compatibility tests.

It shouldn't stop you from adding current state of the master branch in
your Java 11 projects
as regular 3rd party dependency, same as we did with ours.

I can't recall any issues of using current state of the master branch with
Java 11,
Tapestry team and contributors already did most of the job.


On Sun, Jun 23, 2019 at 4:10 PM Ben Weidig <[hidden email]> wrote:

> Hi Dmitry,
>
> thanks for all the work towards Java 11!
>
> We're trying to get it up and running ourselves but without much luck...
>
> You committed the patch for the private instrumentations, but I don't see
> any modifications on the build.gradle, I assume this is because your
> suggestion of doing Java 11 support after the release of 5.5.x
>
> Could you give us some pointers how we could build Tapestry 5.5 with
> target/source for Java 11?
>
> So far we've done the following trying to get the project to build with
> OpenJDK 11 and gradle on the command line including all tests:
> - gradle update to 4.10.3
> - spock update to 1.2-groovy-2.4
> - settings.gradle: remove unnecessary projects (e.g. javadoc, kaptcha,
> mongo, clojure etc.)
> - build.gradle: jdkMajorVersion convert to int and remove "--add-modules"
> for Java 11"
> - build.gradle: remove dependencies on tapestry-javadoc (117)
> - build.gradle: remove jacoco
> - build.gradle: sourceCompatibility/targetCompatibility 11
> - build.gradle: idea project languageLevel 11
>
> It's building, but testing is wonky, mostly becausome unit tests are
> failing. JUnit tries to run helper classes as Tests (e.g.
> AccessMethodsSubject, ProtectedFieldCollaborator), which fails with
> initializationError.
>
> Integration tests run in Quantum, but some are failing, but maybe Quantum
> is the reason here, didn't dig into it.
>
> Did you ran into any other bigger issues with running your projects on Java
> 11?
>
> We have a few 100k lines of code and use the IoC heavily for projects
> customization and would love to test it on our end and create
> issues/patches in Jira if we run into any problems.
>
> Cheers,
> Ben
>
> On Sat, Jun 22, 2019 at 11:56 PM Dmitry Gusev <[hidden email]>
> wrote:
>
> > Hi everyone!
> >
> > Earlier this year I worked on a project where we upgraded all Tapestry
> apps
> > of one of our client to Java 11 with source & target compatibility = 11.
> We
> > were using custom version of Tapestry with only one patch on top of
> current
> > state of the master which I just checked in to the main code base:
> >
> > https://issues.apache.org/jira/browse/TAP5-2611
> >
> > However I couldn't find a way to write a test for it as it would require
> > some test classes compiled with Java 11 target compatibility level.
> >
> > I've found the following issue discussing migration path to Java 11 for
> the
> > Tapestry build, but the issue is now closed and there were not conclusion
> > on what should be done next:
> >
> > https://issues.apache.org/jira/browse/TAP5-2588
> >
> > I tried to upgrade the build to Java 11 before I found discussion in
> > TAP5-2588, and I even upgraded most of it while experimenting and got all
> > the tests green, except tapestry-javadoc module, which at first glance
> > requires code rewrite and not just library upgrades and minor fixes as it
> > was with core modules.
> >
> > I found that current build has some customisations for Java 9, and in
> > TAP5-2588 there were discussions about supporting Java 10 also, but I
> don't
> > think that's necessary at the moment when Java 11 -- current LTS release
> --
> > is out, as those are intermediate releases and are already not supported.
> >
> > So I would suggest to go straight to Java 11 after we release current
> state
> > of master (5.5.x).
> >
> > Starting from 5.6 all releases can remain binary compatible with java 8,
> > but the build itself may leverage the java 11 compiler to start testing
> > java 8+ compatibility, as required by TAP5-2611, for example.
> >
> > What do you think?
> >
> > Best regards,
> > Dmitry
> >
>
>
> --
>
> Netzgut GmbH
>


--
Dmitry Gusev

AnjLab Team
http://anjlab.com
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Thiago H de Paula Figueiredo
In reply to this post by Dmitry Gusev
On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]> wrote:

> Hi everyone!
>

Hello, everyone!


> I tried to upgrade the build to Java 11 before I found discussion in
> TAP5-2588, and I even upgraded most of it while experimenting and got all
> the tests green, except tapestry-javadoc module, which at first glance
> requires code rewrite and not just library upgrades and minor fixes as it
> was with core modules.
>

Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
least tapestry-javadoc, but I guess that's mostly it. If we want to provide
proper Java 9 modules too, we'll need to move some classes between
packages, since each package can only be in one module, and now we have
some packages with classes in more than one subproject/artifact/JAR. Far
from trivial.


> So I would suggest to go straight to Java 11 after we release current state
> of master (5.5.x).
>

Agreed.

What about Java 12? It was released last March. I haven't checked what are
the differences to 11, though.


> Starting from 5.6 all releases can remain binary compatible with java 8,
> but the build itself may leverage the java 11 compiler to start testing
> java 8+ compatibility, as required by TAP5-2611, for example.
>

Agreed too.

And thanks Dmitry for starting this important discussion!

--
Thiago
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Dmitry Gusev
Hi all,

I managed to run a green build on my local machine on Java 11 as part of
https://issues.apache.org/jira/browse/TAP5-2613, PR is here:

https://github.com/apache/tapestry-5/pull/26

I haven't tried Java 12 or above, not sure it's worth supporting any
intermediate releases prior to Java 17 at this stage
as that would be the next long term support (LTS) release as Java 11
currently is.
All major fixes should be back ported to 11.x.

It would be nice to get a green build on Jenkins for it while we're waiting
for the stable 5.5.x.

I'll try to look at it next week, but won't mind if anyone can do it :)

Thiago, do you have a hint where I could read about Jenkins upgrade?
Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a nice
integration: JIRA ticket automatically referenced this PR.


On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
[hidden email]> wrote:

> On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
> wrote:
>
> > Hi everyone!
> >
>
> Hello, everyone!
>
>
> > I tried to upgrade the build to Java 11 before I found discussion in
> > TAP5-2588, and I even upgraded most of it while experimenting and got all
> > the tests green, except tapestry-javadoc module, which at first glance
> > requires code rewrite and not just library upgrades and minor fixes as it
> > was with core modules.
> >
>
> Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
> least tapestry-javadoc, but I guess that's mostly it. If we want to provide
> proper Java 9 modules too, we'll need to move some classes between
> packages, since each package can only be in one module, and now we have
> some packages with classes in more than one subproject/artifact/JAR. Far
> from trivial.
>
>
> > So I would suggest to go straight to Java 11 after we release current
> state
> > of master (5.5.x).
> >
>
> Agreed.
>
> What about Java 12? It was released last March. I haven't checked what are
> the differences to 11, though.
>
>
> > Starting from 5.6 all releases can remain binary compatible with java 8,
> > but the build itself may leverage the java 11 compiler to start testing
> > java 8+ compatibility, as required by TAP5-2611, for example.
> >
>
> Agreed too.
>
> And thanks Dmitry for starting this important discussion!
>
> --
> Thiago
>


--
Dmitry Gusev

AnjLab Team
http://anjlab.com
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Christopher
Hi all,

Just a heads up.  A linux exploit named 'watchbog' has been doing the
rounds, and several have reported that they've discovered the
vulnerability to be with Apache Lucene/SOLR.  If Tapestry comes bundled
with Lucene (I think it does), does it include the latest patches?

Regards,

Chris.


> Hi all,
>
> I managed to run a green build on my local machine on Java 11 as part of
> https://issues.apache.org/jira/browse/TAP5-2613, PR is here:
>
> https://github.com/apache/tapestry-5/pull/26
>
> I haven't tried Java 12 or above, not sure it's worth supporting any
> intermediate releases prior to Java 17 at this stage
> as that would be the next long term support (LTS) release as Java 11
> currently is.
> All major fixes should be back ported to 11.x.
>
> It would be nice to get a green build on Jenkins for it while we're
> waiting
> for the stable 5.5.x.
>
> I'll try to look at it next week, but won't mind if anyone can do it :)
>
> Thiago, do you have a hint where I could read about Jenkins upgrade?
> Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a nice
> integration: JIRA ticket automatically referenced this PR.
>
>
> On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
> [hidden email]> wrote:
>
>> On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
>> wrote:
>>
>> > Hi everyone!
>> >
>>
>> Hello, everyone!
>>
>>
>> > I tried to upgrade the build to Java 11 before I found discussion in
>> > TAP5-2588, and I even upgraded most of it while experimenting and got
>> all
>> > the tests green, except tapestry-javadoc module, which at first glance
>> > requires code rewrite and not just library upgrades and minor fixes as
>> it
>> > was with core modules.
>> >
>>
>> Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
>> least tapestry-javadoc, but I guess that's mostly it. If we want to
>> provide
>> proper Java 9 modules too, we'll need to move some classes between
>> packages, since each package can only be in one module, and now we have
>> some packages with classes in more than one subproject/artifact/JAR. Far
>> from trivial.
>>
>>
>> > So I would suggest to go straight to Java 11 after we release current
>> state
>> > of master (5.5.x).
>> >
>>
>> Agreed.
>>
>> What about Java 12? It was released last March. I haven't checked what
>> are
>> the differences to 11, though.
>>
>>
>> > Starting from 5.6 all releases can remain binary compatible with java
>> 8,
>> > but the build itself may leverage the java 11 compiler to start
>> testing
>> > java 8+ compatibility, as required by TAP5-2611, for example.
>> >
>>
>> Agreed too.
>>
>> And thanks Dmitry for starting this important discussion!
>>
>> --
>> Thiago
>>
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." - Antoine de Saint-Exupéry.
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

bobharner
Thanks for the notice, Chris, but fortunately Tapestry doesn't bundle or
have a dependency on License or SOLR.

On Mon, Aug 26, 2019, 9:04 PM Christopher Dodunski <
[hidden email]> wrote:

> Hi all,
>
> Just a heads up.  A linux exploit named 'watchbog' has been doing the
> rounds, and several have reported that they've discovered the
> vulnerability to be with Apache Lucene/SOLR.  If Tapestry comes bundled
> with Lucene (I think it does), does it include the latest patches?
>
> Regards,
>
> Chris.
>
>
> > Hi all,
> >
> > I managed to run a green build on my local machine on Java 11 as part of
> > https://issues.apache.org/jira/browse/TAP5-2613, PR is here:
> >
> > https://github.com/apache/tapestry-5/pull/26
> >
> > I haven't tried Java 12 or above, not sure it's worth supporting any
> > intermediate releases prior to Java 17 at this stage
> > as that would be the next long term support (LTS) release as Java 11
> > currently is.
> > All major fixes should be back ported to 11.x.
> >
> > It would be nice to get a green build on Jenkins for it while we're
> > waiting
> > for the stable 5.5.x.
> >
> > I'll try to look at it next week, but won't mind if anyone can do it :)
> >
> > Thiago, do you have a hint where I could read about Jenkins upgrade?
> > Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a nice
> > integration: JIRA ticket automatically referenced this PR.
> >
> >
> > On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
> > [hidden email]> wrote:
> >
> >> On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
> >> wrote:
> >>
> >> > Hi everyone!
> >> >
> >>
> >> Hello, everyone!
> >>
> >>
> >> > I tried to upgrade the build to Java 11 before I found discussion in
> >> > TAP5-2588, and I even upgraded most of it while experimenting and got
> >> all
> >> > the tests green, except tapestry-javadoc module, which at first glance
> >> > requires code rewrite and not just library upgrades and minor fixes as
> >> it
> >> > was with core modules.
> >> >
> >>
> >> Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
> >> least tapestry-javadoc, but I guess that's mostly it. If we want to
> >> provide
> >> proper Java 9 modules too, we'll need to move some classes between
> >> packages, since each package can only be in one module, and now we have
> >> some packages with classes in more than one subproject/artifact/JAR. Far
> >> from trivial.
> >>
> >>
> >> > So I would suggest to go straight to Java 11 after we release current
> >> state
> >> > of master (5.5.x).
> >> >
> >>
> >> Agreed.
> >>
> >> What about Java 12? It was released last March. I haven't checked what
> >> are
> >> the differences to 11, though.
> >>
> >>
> >> > Starting from 5.6 all releases can remain binary compatible with java
> >> 8,
> >> > but the build itself may leverage the java 11 compiler to start
> >> testing
> >> > java 8+ compatibility, as required by TAP5-2611, for example.
> >> >
> >>
> >> Agreed too.
> >>
> >> And thanks Dmitry for starting this important discussion!
> >>
> >> --
> >> Thiago
> >>
> >
> >
> > --
> > Dmitry Gusev
> >
> > AnjLab Team
> > http://anjlab.com
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Christopher
Thanks Bob.

I see it is offered as a 3rd party Tapestry module, but thanks for
confirming that it isn't bundled with Tapestry core.

https://tapestry.apache.org/third-party-modules.html

Regards,

Chris.


> Thanks for the notice, Chris, but fortunately Tapestry doesn't bundle or
> have a dependency on License or SOLR.
>
> On Mon, Aug 26, 2019, 9:04 PM Christopher Dodunski <
> [hidden email]> wrote:
>
>> Hi all,
>>
>> Just a heads up.  A linux exploit named 'watchbog' has been doing the
>> rounds, and several have reported that they've discovered the
>> vulnerability to be with Apache Lucene/SOLR.  If Tapestry comes bundled
>> with Lucene (I think it does), does it include the latest patches?
>>
>> Regards,
>>
>> Chris.
>>
>>
>> > Hi all,
>> >
>> > I managed to run a green build on my local machine on Java 11 as part
>> of
>> > https://issues.apache.org/jira/browse/TAP5-2613, PR is here:
>> >
>> > https://github.com/apache/tapestry-5/pull/26
>> >
>> > I haven't tried Java 12 or above, not sure it's worth supporting any
>> > intermediate releases prior to Java 17 at this stage
>> > as that would be the next long term support (LTS) release as Java 11
>> > currently is.
>> > All major fixes should be back ported to 11.x.
>> >
>> > It would be nice to get a green build on Jenkins for it while we're
>> > waiting
>> > for the stable 5.5.x.
>> >
>> > I'll try to look at it next week, but won't mind if anyone can do it
>> :)
>> >
>> > Thiago, do you have a hint where I could read about Jenkins upgrade?
>> > Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a
>> nice
>> > integration: JIRA ticket automatically referenced this PR.
>> >
>> >
>> > On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
>> > [hidden email]> wrote:
>> >
>> >> On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
>> >> wrote:
>> >>
>> >> > Hi everyone!
>> >> >
>> >>
>> >> Hello, everyone!
>> >>
>> >>
>> >> > I tried to upgrade the build to Java 11 before I found discussion
>> in
>> >> > TAP5-2588, and I even upgraded most of it while experimenting and
>> got
>> >> all
>> >> > the tests green, except tapestry-javadoc module, which at first
>> glance
>> >> > requires code rewrite and not just library upgrades and minor fixes
>> as
>> >> it
>> >> > was with core modules.
>> >> >
>> >>
>> >> Indeed, before we build Tapestry with Java 11, we'll need to rewrite
>> at
>> >> least tapestry-javadoc, but I guess that's mostly it. If we want to
>> >> provide
>> >> proper Java 9 modules too, we'll need to move some classes between
>> >> packages, since each package can only be in one module, and now we
>> have
>> >> some packages with classes in more than one subproject/artifact/JAR.
>> Far
>> >> from trivial.
>> >>
>> >>
>> >> > So I would suggest to go straight to Java 11 after we release
>> current
>> >> state
>> >> > of master (5.5.x).
>> >> >
>> >>
>> >> Agreed.
>> >>
>> >> What about Java 12? It was released last March. I haven't checked
>> what
>> >> are
>> >> the differences to 11, though.
>> >>
>> >>
>> >> > Starting from 5.6 all releases can remain binary compatible with
>> java
>> >> 8,
>> >> > but the build itself may leverage the java 11 compiler to start
>> >> testing
>> >> > java 8+ compatibility, as required by TAP5-2611, for example.
>> >> >
>> >>
>> >> Agreed too.
>> >>
>> >> And thanks Dmitry for starting this important discussion!
>> >>
>> >> --
>> >> Thiago
>> >>
>> >
>> >
>> > --
>> > Dmitry Gusev
>> >
>> > AnjLab Team
>> > http://anjlab.com
>> >
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." - Antoine de Saint-Exupéry.
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Thiago H de Paula Figueiredo
In reply to this post by Dmitry Gusev
On Mon, Aug 26, 2019 at 8:17 PM Dmitry Gusev <[hidden email]> wrote:

> Hi all,
>

Hello!


> I managed to run a green build on my local machine on Java 11 as part of
> https://issues.apache.org/jira/browse/TAP5-2613, PR is here:
> https://github.com/apache/tapestry-5/pull/26


Awesome! Thank you very much for that! I love that you fixed the taglet
support.


> I haven't tried Java 12 or above, not sure it's worth supporting any
> intermediate releases prior to Java 17 at this stage
> as that would be the next long term support (LTS) release as Java 11
> currently is. All major fixes should be back ported to 11.x.
>

Wouldn't the next LTS Java support be 2014? Looking at
https://www.oracle.com/technetwork/java/java-se-support-roadmap.html, it
seems that the Oracle's plan is to release one LTS version, then 2 non-LTS
ones, then another LTS. But, of course, I may be wrong, and often I am. :D

Otherwise, I agree about only supporting LTS Java versions.

Dmitry, I'm not sure whether you're suggesting merging this pull request
for 5.6 or 5.5. I still believe we should release 5.5 targeting Java 8
bytecode, so we still support everyone who didn't upgrade to Java 11 yet,
and, as soon as possible, release 5.6 using Java 11 for both source and
target bytecode.

The only thing I still want to do in 5.5 is the support for running
Tapestry without Bootstrap, something I'm planning to work in the next
days. The work in progress has been done on the 'bootstrapless' branch so
far.


> It would be nice to get a green build on Jenkins for it while we're waiting
> for the stable 5.5.x.
> I'll try to look at it next week, but won't mind if anyone can do it :)
>

The last build failure was due to failing to download one DTD file,
http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent, which is a little bit
weird. I'll try to rewrite that code a bit so it doesn't fail outright when
the download fails.


> Thiago, do you have a hint where I could read about Jenkins upgrade?
> Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a nice
> integration: JIRA ticket automatically referenced this PR.
>
>
> On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
> [hidden email]> wrote:
>
> > On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
> > wrote:
> >
> > > Hi everyone!
> > >
> >
> > Hello, everyone!
> >
> >
> > > I tried to upgrade the build to Java 11 before I found discussion in
> > > TAP5-2588, and I even upgraded most of it while experimenting and got
> all
> > > the tests green, except tapestry-javadoc module, which at first glance
> > > requires code rewrite and not just library upgrades and minor fixes as
> it
> > > was with core modules.
> > >
> >
> > Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
> > least tapestry-javadoc, but I guess that's mostly it. If we want to
> provide
> > proper Java 9 modules too, we'll need to move some classes between
> > packages, since each package can only be in one module, and now we have
> > some packages with classes in more than one subproject/artifact/JAR. Far
> > from trivial.
> >
> >
> > > So I would suggest to go straight to Java 11 after we release current
> > state
> > > of master (5.5.x).
> > >
> >
> > Agreed.
> >
> > What about Java 12? It was released last March. I haven't checked what
> are
> > the differences to 11, though.
> >
> >
> > > Starting from 5.6 all releases can remain binary compatible with java
> 8,
> > > but the build itself may leverage the java 11 compiler to start testing
> > > java 8+ compatibility, as required by TAP5-2611, for example.
> > >
> >
> > Agreed too.
> >
> > And thanks Dmitry for starting this important discussion!
> >
> > --
> > Thiago
> >
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>


--
Thiago
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Dmitry Gusev
Hi Thiago,

I was thinking of merging it to 5.6.

It has no functional changes and tapestry runtime jars can still run on
java 8.
The jars are just built with the java 11 compiler, but byte code level is
still java 8 for runtime.
I'm saying "for runtime", because one tapestry-javadoc would now require
JDK11,
so if anyone has custom javadocs for their tapestry components they will be
forced to upgrade their java
(or temporarily use old tapestry-javadoc dependency for compatibility).

Not sure about switching to java 11 byte code for 5.6.

I'd love to do this, because it would allow running tests on java 11
bytecode which we currently miss.
I still plan to write a test for
https://issues.apache.org/jira/browse/TAP5-2611
With java 8 as main target I have to create a new module just for java 11
compatibility in tests,
on the other hand if we switch target compatibility to java 11 in 5.6
already I could create that test in existing module.

All tapestry apps I'm working on are on java 11 already, but I realise not
everyone is migrated
and it would be nice to get some feedback from community about it.



On Mon, Sep 16, 2019 at 5:27 PM Thiago H. de Paula Figueiredo <
[hidden email]> wrote:

> On Mon, Aug 26, 2019 at 8:17 PM Dmitry Gusev <[hidden email]>
> wrote:
>
> > Hi all,
> >
>
> Hello!
>
>
> > I managed to run a green build on my local machine on Java 11 as part of
> > https://issues.apache.org/jira/browse/TAP5-2613, PR is here:
> > https://github.com/apache/tapestry-5/pull/26
>
>
> Awesome! Thank you very much for that! I love that you fixed the taglet
> support.
>
>
> > I haven't tried Java 12 or above, not sure it's worth supporting any
> > intermediate releases prior to Java 17 at this stage
> > as that would be the next long term support (LTS) release as Java 11
> > currently is. All major fixes should be back ported to 11.x.
> >
>
> Wouldn't the next LTS Java support be 2014? Looking at
> https://www.oracle.com/technetwork/java/java-se-support-roadmap.html, it
> seems that the Oracle's plan is to release one LTS version, then 2 non-LTS
> ones, then another LTS. But, of course, I may be wrong, and often I am. :D
>
> Otherwise, I agree about only supporting LTS Java versions.
>
> Dmitry, I'm not sure whether you're suggesting merging this pull request
> for 5.6 or 5.5. I still believe we should release 5.5 targeting Java 8
> bytecode, so we still support everyone who didn't upgrade to Java 11 yet,
> and, as soon as possible, release 5.6 using Java 11 for both source and
> target bytecode.
>
> The only thing I still want to do in 5.5 is the support for running
> Tapestry without Bootstrap, something I'm planning to work in the next
> days. The work in progress has been done on the 'bootstrapless' branch so
> far.
>
>
> > It would be nice to get a green build on Jenkins for it while we're
> waiting
> > for the stable 5.5.x.
> > I'll try to look at it next week, but won't mind if anyone can do it :)
> >
>
> The last build failure was due to failing to download one DTD file,
> http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent, which is a little bit
> weird. I'll try to rewrite that code a bit so it doesn't fail outright when
> the download fails.
>
>
> > Thiago, do you have a hint where I could read about Jenkins upgrade?
> > Or maybe we could try Travis CI on GitHub. JIRA & GitHub have got a nice
> > integration: JIRA ticket automatically referenced this PR.
> >
> >
> > On Thu, Jun 27, 2019 at 9:47 PM Thiago H. de Paula Figueiredo <
> > [hidden email]> wrote:
> >
> > > On Sat, Jun 22, 2019 at 6:56 PM Dmitry Gusev <[hidden email]>
> > > wrote:
> > >
> > > > Hi everyone!
> > > >
> > >
> > > Hello, everyone!
> > >
> > >
> > > > I tried to upgrade the build to Java 11 before I found discussion in
> > > > TAP5-2588, and I even upgraded most of it while experimenting and got
> > all
> > > > the tests green, except tapestry-javadoc module, which at first
> glance
> > > > requires code rewrite and not just library upgrades and minor fixes
> as
> > it
> > > > was with core modules.
> > > >
> > >
> > > Indeed, before we build Tapestry with Java 11, we'll need to rewrite at
> > > least tapestry-javadoc, but I guess that's mostly it. If we want to
> > provide
> > > proper Java 9 modules too, we'll need to move some classes between
> > > packages, since each package can only be in one module, and now we have
> > > some packages with classes in more than one subproject/artifact/JAR.
> Far
> > > from trivial.
> > >
> > >
> > > > So I would suggest to go straight to Java 11 after we release current
> > > state
> > > > of master (5.5.x).
> > > >
> > >
> > > Agreed.
> > >
> > > What about Java 12? It was released last March. I haven't checked what
> > are
> > > the differences to 11, though.
> > >
> > >
> > > > Starting from 5.6 all releases can remain binary compatible with java
> > 8,
> > > > but the build itself may leverage the java 11 compiler to start
> testing
> > > > java 8+ compatibility, as required by TAP5-2611, for example.
> > > >
> > >
> > > Agreed too.
> > >
> > > And thanks Dmitry for starting this important discussion!
> > >
> > > --
> > > Thiago
> > >
> >
> >
> > --
> > Dmitry Gusev
> >
> > AnjLab Team
> > http://anjlab.com
> >
>
>
> --
> Thiago
>


--
Dmitry Gusev

AnjLab Team
http://anjlab.com
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Oliver Hanraths
On Di, 2019-09-17 at 13:24 +0300, Dmitry Gusev wrote:
> All tapestry apps I'm working on are on java 11 already, but I realise
> not everyone is migrated and it would be nice to get some feedback
> from community about it.

Which Tapestry version do you use for Java 11? As far as I know the
latest release (5.4.4) does not work with it, right? Do you use custom
builds?

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Upgrade Tapestry build to Java 11

Dmitry Gusev
Hi Oliver,

I’m using 5.5.0-beta-3, and been using latest state of the master before
that.


On Tuesday, September 17, 2019, Oliver Hanraths <
[hidden email]> wrote:

> On Di, 2019-09-17 at 13:24 +0300, Dmitry Gusev wrote:
> > All tapestry apps I'm working on are on java 11 already, but I realise
> > not everyone is migrated and it would be nice to get some feedback
> > from community about it.
>
> Which Tapestry version do you use for Java 11? As far as I know the
> latest release (5.4.4) does not work with it, right? Do you use custom
> builds?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

--
Dmitry Gusev

AnjLab Team
http://anjlab.com