> On Mar 25, 2021, at 7:53 AM, Zowalla, Richard 
> <richard.zowa...@hs-heilbronn.de> wrote:
> 
> Hi David, Hi Jon,
> 
> thanks for your replies.
> 
> I just pushed some (short term) fixes to the tomee-site-generator:
> 
> (a) Added an (experimental) generator to create the download page based
> on downloads.apache.org or archive.apache.org (rather than using
> repo.maven.apache.org), so we can be sure, that the links are working.
> 
> (b) I updated the downloads-ng.adoc with (1) the feedback by Sebb and
> Romain from [1] - so it is now a bit "cleaner" (imho). 
> 
> (c) I updated and automatically converted the previous download-
> archive.adoc to ensure, that the links are working again. We had some
> mismatches related to "http" for the repo.maven.apache.org links for
> very old releases and some broken links due to the request by INFRA to
> remove very old relases from the mirroring system. Old releases, which
> previously linked to the mirrors are now linking to archive.apache.org.
> 
> I will try to update https://github.com/apache/tomee-site-pub with the
> changes as well.
> 
> As stated above: This is only a "short term" fix to comply with the
> infra requirements. I will respond on the other mail as well.

Took a quick look and love the clean and direct approach you have in the code!  
I'm a big fan of static inner classes to keep code tight and easy to digest.

Some style advice, get in the habit of using the `final` keyword on all fields, 
variables and parameters.  It'll look strange at first, but you'll get used to 
it and it'll change the way you code in a good way.

For example these variables should be marked final and not initialized 
immediately:

 - 
https://github.com/apache/tomee-site-generator/commit/27a46ae7d958867431398f86abf1ed55df4a3f74#diff-30e729b63bba575db7b6e9681e02c8ff1faf81f33d27c610c2bbeb4fe333cc23R149-R151

Once you did that all your code would work ok, minus this chunk which the 
compiler would force you to deal with differently.  You'd be forced to handle 
the situation better than simply a System.out no one will read.

 - 
https://github.com/apache/tomee-site-generator/commit/27a46ae7d958867431398f86abf1ed55df4a3f74#diff-30e729b63bba575db7b6e9681e02c8ff1faf81f33d27c610c2bbeb4fe333cc23R162-R164

If it's not going to work, better it really doesn't work and just throw an 
exception with "this should never happen."  That way the future Jenkins job 
will appear red, not green, and we don't update the website with any 
potentially invalid content.  Instead of someone coming to the website and 
seeing links with no names, they'd simply see the old-but-valid links.  The 
developer who attempted the website update can just as easily determine the 
update didn't work by noticing the links are old as they can by the links are 
invalid.  However if they don't notice by looking at the website, they can 
notice by seeing failed Jenkins job.  Until they notice, the website stays 
valid (assuming the release wasn't removed from the mirror of course).

Moreover, if someone who is not you tried to use this code and that "should 
never happen" situation occurred, they'd have no exception or stack trace to 
immediately point them in the right direction.  They'd have to be keen to spot 
"This should not happen. New extensions?" among the output, know it is 
significant, and search for the line in the code where it occurs.  Often an 
exception does occur, just later in the code and that often means people more 
easily miss the "This should not happen" output, because their attention is 
drawn to the stacktrace which is actually just a symptom.

Avoiding mutable fields and favoring final would have forced you down the path 
of eagerly failing vs continuing with invalid defaults.

Love the update, I see you did use final in many places!  You're on the right 
track.  Lean into that more and try to force yourself to use it even when it at 
first feels odd.  I hope the feedback is welcome and you see it as a 
compliment.  You've been doing so much great work and spending your time 
helping the project, it's my way of saying thank you and you're worth the time 
to mentor :)  For whatever that's worth :)

Keep up the truly awesome work.  If we had 5 more Richards this project would 
be signing.  We'll get there :)


-David

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to