This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-dev-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f3ca1c7 2025/02/25 11:28:31: Generated dev website from
groovy-website@9433b27
f3ca1c7 is described below
commit f3ca1c7ba669d9abd8d40bdb75edf0cbbff2ab6f
Author: jenkins <[email protected]>
AuthorDate: Tue Feb 25 11:28:31 2025 +0000
2025/02/25 11:28:31: Generated dev website from groovy-website@9433b27
---
blog/adventures-with-groovyfx.html | 2 +-
blog/apache-groovy-2022-year-in.html | 2 +-
blog/classifying-iris-flowers-with-deep.html | 2 +-
blog/comparators-and-sorting-in-groovy.html | 2 +-
blog/deck-of-cards-with-groovy.html | 2 +-
blog/deep-learning-and-eclipse-collections.html | 2 +-
blog/detecting-objects-with-groovy-the.html | 2 +-
blog/feed.atom | 13 +-
blog/fruity-eclipse-collections.html | 2 +-
blog/fun-with-obfuscated-groovy.html | 2 +-
blog/gmavenplus-1-6-2-released.html | 2 +-
blog/gpars-meets-virtual-threads.html | 2 +-
blog/groovy-2-4-16-released.html | 2 +-
blog/groovy-2-4-16-windows.html | 2 +-
blog/groovy-2-4-17-released.html | 2 +-
blog/groovy-2-5-0-released.html | 2 +-
blog/groovy-2-5-1-released.html | 2 +-
blog/groovy-2-5-2-released.html | 2 +-
blog/groovy-2-5-2-windows.html | 2 +-
blog/groovy-2-5-3-released.html | 2 +-
blog/groovy-2-5-3-windows.html | 2 +-
blog/groovy-2-5-4-released.html | 2 +-
blog/groovy-2-5-4-windows.html | 2 +-
blog/groovy-2-5-5-released.html | 2 +-
blog/groovy-2-5-5-windows.html | 2 +-
blog/groovy-2-5-6-released.html | 2 +-
blog/groovy-2-5-7-and.html | 2 +-
blog/groovy-2-5-7-released.html | 2 +-
blog/groovy-2-5-clibuilder-renewal.html | 2 +-
blog/groovy-3-0-0-alpha.html | 2 +-
blog/groovy-3-0-0-alpha1.html | 2 +-
blog/groovy-3-0-0-beta.html | 2 +-
blog/groovy-3-0-0-beta1.html | 2 +-
blog/groovy-3-0-0-beta2.html | 2 +-
blog/groovy-4-0-3-released.html | 2 +-
blog/groovy-dauphine.html | 2 +-
blog/groovy-haiku-processing.html | 2 +-
blog/groovy-list-processing-cheat-sheet.html | 2 +-
blog/groovy-lucene.html | 2 +-
blog/groovy-null-processing.html | 2 +-
blog/groovy-record-performance.html | 2 +-
blog/groovy-records.html | 2 +-
blog/groovy-release-train-4-0.html | 2 +-
blog/groovy-sequenced-collections.html | 2 +-
blog/groovy-text-similarity.html | 2 +-
blog/helloworldemoji.html | 2 +-
blog/img/nb_create_groovy_application.png | Bin 0 -> 163052 bytes
blog/img/nb_debug.png | Bin 0 -> 755691 bytes
blog/img/nb_enable_groovy_plugin.png | Bin 0 -> 146399 bytes
blog/img/nb_groovy5.png | Bin 0 -> 883607 bytes
blog/img/nb_new_application_details.png | Bin 0 -> 142326 bytes
blog/img/nb_script_with_category.png | Bin 0 -> 689237 bytes
blog/img/nb_simple_fractions_script.png | Bin 0 -> 579321 bytes
blog/index.html | 4 +-
blog/lego-bricks-with-groovy.html | 2 +-
blog/matrix-calculations-with-groovy-apache.html | 2 +-
...-collections-with-groovy.html => netbeans.html} | 201 +++++++++++++--------
blog/parsing-json-with-groovy.html | 2 +-
blog/reading-and-writing-csv-files.html | 2 +-
blog/seasons-greetings-emoji.html | 2 +-
blog/set-operations-with-groovy.html | 2 +-
blog/using-groovy-with-apache-wayang.html | 2 +-
blog/whiskey-clustering-with-groovy-and.html | 2 +-
blog/wordle-checker.html | 2 +-
blog/working-with-sql-databases-with.html | 2 +-
blog/zipping-collections-with-groovy.html | 2 +-
66 files changed, 196 insertions(+), 134 deletions(-)
diff --git a/blog/adventures-with-groovyfx.html
b/blog/adventures-with-groovyfx.html
index 2bdeb2b..6a1c0ba 100644
--- a/blog/adventures-with-groovyfx.html
+++ b/blog/adventures-with-groovyfx.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Adventures with GroovyFX</a></li><li><a
href='#_further_information' class='anchor-link'>Further
information</a></li></ul><br/><ul class='nav-sidebar'><li style='padding:
0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./set-operations-w [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Adventures with GroovyFX</a></li><li><a
href='#_further_information' class='anchor-link'>Further
information</a></li></ul><br/><ul class='nav-sidebar'><li style='padding:
0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./helloworldemoji' [...]
<div class="sectionbody">
<div class="paragraph">
<p>This blog looks at a <a href="http://groovyfx.org/">GroovyFX</a> version of
a <a
href="https://donraab.medium.com/my-weird-and-wonderful-first-adventures-with-javafx-6efe3b1923c8">ToDo
application originally written in JavaFX</a>.
diff --git a/blog/apache-groovy-2022-year-in.html
b/blog/apache-groovy-2022-year-in.html
index 9ef8386..b4a01ae 100644
--- a/blog/apache-groovy-2022-year-in.html
+++ b/blog/apache-groovy-2022-year-in.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Apache Groovy 2022 Year In Review</a></li><li><a
href='#_releases_contributions' class='anchor-link'>Releases &
Contributions</a></li><li><a href='#_downloads'
class='anchor-link'>Downloads</a></li><li><a href='#_blogs'
class='anchor-link'>Blogs</a></li><li><a href='#_ [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Apache Groovy 2022 Year In Review</a></li><li><a
href='#_releases_contributions' class='anchor-link'>Releases &
Contributions</a></li><li><a href='#_downloads'
class='anchor-link'>Downloads</a></li><li><a href='#_blogs'
class='anchor-link'>Blogs</a></li><li><a href='#_ [...]
<div class="sectionbody">
<div class="paragraph">
<p>The year 2022 has been a reasonably good one for the Groovy Programming
Language.
diff --git a/blog/classifying-iris-flowers-with-deep.html
b/blog/classifying-iris-flowers-with-deep.html
index e0def7f..79d02af 100644
--- a/blog/classifying-iris-flowers-with-deep.html
+++ b/blog/classifying-iris-flowers-with-deep.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Classifying Iris Flowers with Deep Learning, Groovy and
GraalVM</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep
Learning</a></li><li><a href='#_encog' class='anchor-link'>Encog</a></li><li><a
href='#_eclipse_deeplearning4j' class='anchor-link'>Eclipse DeepLe [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Classifying Iris Flowers with Deep Learning, Groovy and
GraalVM</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep
Learning</a></li><li><a href='#_encog' class='anchor-link'>Encog</a></li><li><a
href='#_eclipse_deeplearning4j' class='anchor-link'>Eclipse DeepLe [...]
<div class="sectionbody">
<div class="paragraph">
<p><span class="image right"><img src="img/iris_flowers.png" alt="iris
flowers" width="200"></span>
diff --git a/blog/comparators-and-sorting-in-groovy.html
b/blog/comparators-and-sorting-in-groovy.html
index 6e57676..1d182f9 100644
--- a/blog/comparators-and-sorting-in-groovy.html
+++ b/blog/comparators-and-sorting-in-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Comparators and Sorting in Groovy</a></li><li><a
href='#_the_java_comparator_story_recap' class='anchor-link'>The Java
comparator story recap</a></li><li><a href='#_the_groovy_comparator_story'
class='anchor-link'>The Groovy comparator story</a></li><li><a href='#_mixing_i
[...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Comparators and Sorting in Groovy</a></li><li><a
href='#_the_java_comparator_story_recap' class='anchor-link'>The Java
comparator story recap</a></li><li><a href='#_the_groovy_comparator_story'
class='anchor-link'>The Groovy comparator story</a></li><li><a href='#_mixing_i
[...]
<div class="sectionbody">
<div class="paragraph">
<p><span class="image right"><img src="img/cher_record.png" alt="Cher"
width="179" height="179"></span>
diff --git a/blog/deck-of-cards-with-groovy.html
b/blog/deck-of-cards-with-groovy.html
index 2482083..79ca8ea 100644
--- a/blog/deck-of-cards-with-groovy.html
+++ b/blog/deck-of-cards-with-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Deck of cards with Groovy, JDK collections and Eclipse
Collections</a></li></ul><br/><ul class='nav-sidebar'><li style='padding:
0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./deep-learning-and-eclipse-collections'>Deep Learning and E [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Deck of cards with Groovy, JDK collections and Eclipse
Collections</a></li></ul><br/><ul class='nav-sidebar'><li style='padding:
0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./deep-learning-and-eclipse-collections'>Deep Learning and E [...]
<p>Once again, <a href="https://twitter.com/TheDonRaab">Donald Raab</a> has
produced an interesting
<a
href="https://donraab.medium.com/how-to-create-a-deck-of-cards-using-eclipse-collections-d9838ac430b7">blog
post</a> on
<a href="https://github.com/eclipse/eclipse-collections">Eclipse
Collections</a> this one shows some code for modelling and manipulating cards
with Java 17 and Eclipse Collections. His related katas are highly recommended.
diff --git a/blog/deep-learning-and-eclipse-collections.html
b/blog/deep-learning-and-eclipse-collections.html
index 431bdaf..1c494d2 100644
--- a/blog/deep-learning-and-eclipse-collections.html
+++ b/blog/deep-learning-and-eclipse-collections.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Deep Learning and Eclipse Collections</a></li><li><a
href='#_setting_up_our_model_and_data' class='anchor-link'>Setting up our model
and data</a></li><li><a href='#_applying_deep_learning'
class='anchor-link'>Applying deep learning</a></li></ul><br/><ul
class='nav-sidebar' [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Deep Learning and Eclipse Collections</a></li><li><a
href='#_setting_up_our_model_and_data' class='anchor-link'>Setting up our model
and data</a></li><li><a href='#_applying_deep_learning'
class='anchor-link'>Applying deep learning</a></li></ul><br/><ul
class='nav-sidebar' [...]
<div class="sectionbody">
<div class="paragraph">
<p>In previous blogs, we’ve covered
diff --git a/blog/detecting-objects-with-groovy-the.html
b/blog/detecting-objects-with-groovy-the.html
index b092d4e..fde7128 100644
--- a/blog/detecting-objects-with-groovy-the.html
+++ b/blog/detecting-objects-with-groovy-the.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Detecting objects with Groovy, the Deep Java Library (DJL), and
Apache MXNet</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep
Learning</a></li><li><a href='#_deep_java_library_djl_apache_mxnet'
class='anchor-link'>Deep Java Library (DJL) & Apache MXNet</a [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Detecting objects with Groovy, the Deep Java Library (DJL), and
Apache MXNet</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep
Learning</a></li><li><a href='#_deep_java_library_djl_apache_mxnet'
class='anchor-link'>Deep Java Library (DJL) & Apache MXNet</a [...]
<div class="sectionbody">
<div class="paragraph">
<p>This blog posts looks at using <a href="https://groovy-lang.org/">Apache
Groovy</a> with the
diff --git a/blog/feed.atom b/blog/feed.atom
index cec0337..e6baba3 100644
--- a/blog/feed.atom
+++ b/blog/feed.atom
@@ -4,7 +4,18 @@
<link href="http://groovy.apache.org/blog"/>
<link href="http://groovy.apache.org/blog/feed.atom" rel="self"/>
<id>http://groovy.apache.org/blog</id>
- <updated>2025-02-20T14:10:00Z</updated>
+ <updated>2025-02-25T22:15:00Z</updated>
+ <entry>
+ <id>http://groovy.apache.org/blog/netbeans</id>
+ <author>
+ <name>Paul King</name>
+ </author>
+ <title type="html">Using Apache NetBeans with Apache Groovy</title>
+ <link href="http://groovy.apache.org/blog/netbeans"/>
+ <updated>2025-02-25T22:15:00Z</updated>
+ <published>2025-02-25T22:15:00Z</published>
+ <summary type="html">This post looks at using NetBeans and
Groovy.</summary>
+ </entry>
<entry>
<id>http://groovy.apache.org/blog/groovy-text-similarity</id>
<author>
diff --git a/blog/fruity-eclipse-collections.html
b/blog/fruity-eclipse-collections.html
index 58d9899..97a236c 100644
--- a/blog/fruity-eclipse-collections.html
+++ b/blog/fruity-eclipse-collections.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Fruity Eclipse Collections</a></li><li><a
href='#_eclipse_collections_fruit_salad' class='anchor-link'>Eclipse
Collections Fruit Salad</a></li><li><a href='#_exploring_emoji_colors'
class='anchor-link'>Exploring emoji colors</a></li><li><a
href='#_putting_it_all_together' [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Fruity Eclipse Collections</a></li><li><a
href='#_eclipse_collections_fruit_salad' class='anchor-link'>Eclipse
Collections Fruit Salad</a></li><li><a href='#_exploring_emoji_colors'
class='anchor-link'>Exploring emoji colors</a></li><li><a
href='#_putting_it_all_together' [...]
<div class="sectionbody">
<div class="paragraph">
<p>This blog post continues on the theme of using fruit emoji from the
diff --git a/blog/fun-with-obfuscated-groovy.html
b/blog/fun-with-obfuscated-groovy.html
index ad60d02..611ca79 100644
--- a/blog/fun-with-obfuscated-groovy.html
+++ b/blog/fun-with-obfuscated-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Fun with obfuscated Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./matrix-calculations-with-groovy-apache'>Matrix calculations with
Groovy, Apache Commons Math, ojAl [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Fun with obfuscated Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-record-performance'>Groovy Record Performance</a></li><li><a
href='./matrix-calculations-wi [...]
<p>An interesting tweet appeared in my feed this morning:</p>
</div>
<div class="paragraph">
diff --git a/blog/gmavenplus-1-6-2-released.html
b/blog/gmavenplus-1-6-2-released.html
index 53bf75b..e075cfe 100644
--- a/blog/gmavenplus-1-6-2-released.html
+++ b/blog/gmavenplus-1-6-2-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>GMavenPlus 1.6.2 Released (Community Artifact)</a></li><li><a
href='#_gmavenplus_1_6_2_has_been_released' class='anchor-link'>GMavenPlus
1.6.2 has been released.</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Rel [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>GMavenPlus 1.6.2 Released (Community Artifact)</a></li><li><a
href='#_gmavenplus_1_6_2_has_been_released' class='anchor-link'>GMavenPlus
1.6.2 has been released.</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Rel [...]
<h2 id="_gmavenplus_1_6_2_has_been_released">GMavenPlus 1.6.2 has been
released.</h2>
<div class="sectionbody">
<div class="paragraph">
diff --git a/blog/gpars-meets-virtual-threads.html
b/blog/gpars-meets-virtual-threads.html
index c7d851a..730ef21 100644
--- a/blog/gpars-meets-virtual-threads.html
+++ b/blog/gpars-meets-virtual-threads.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>GPars meets Virtual Threads</a></li><li><a
href='#_parallel_collections' class='anchor-link'>Parallel
Collections</a></li><li><a href='#_agents'
class='anchor-link'>Agents</a></li><li><a href='#_actors'
class='anchor-link'>Actors</a></li><li><a href='#_dataflow' class='anc [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>GPars meets Virtual Threads</a></li><li><a
href='#_parallel_collections' class='anchor-link'>Parallel
Collections</a></li><li><a href='#_agents'
class='anchor-link'>Agents</a></li><li><a href='#_actors'
class='anchor-link'>Actors</a></li><li><a href='#_dataflow' class='anc [...]
<div class="sectionbody">
<div class="paragraph">
<p><span class="image right"><img src="img/gpars_logo.png" alt="gpars"
width="150"></span>
diff --git a/blog/groovy-2-4-16-released.html b/blog/groovy-2-4-16-released.html
index ae729db..994beb1 100644
--- a/blog/groovy-2-4-16-released.html
+++ b/blog/groovy-2-4-16-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.16 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-windows'>Groovy 2.4.16 Windows Installer Released
(Community Artifact)</a></li><li><a hr [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.16 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-windows'>Groovy 2.4.16 Windows Installer Released
(Community Artifact)</a></li><li><a hr [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-4-16-windows.html b/blog/groovy-2-4-16-windows.html
index a7888ea..c9eb13f 100644
--- a/blog/groovy-2-4-16-windows.html
+++ b/blog/groovy-2-4-16-windows.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.16 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a h [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.16 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a h [...]
<p>The Windows installer for Groovy 2.4.16 (community artifact) is available
from:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.4.16/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.4.16/</a></p>
</div></div></div></div></div><footer id='footer'>
diff --git a/blog/groovy-2-4-17-released.html b/blog/groovy-2-4-17-released.html
index 8c82ca4..c87cbf6 100644
--- a/blog/groovy-2-4-17-released.html
+++ b/blog/groovy-2-4-17-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.17 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a
href='./groovy-2-4-16-windows'>Groovy 2. [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.4.17 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a
href='./groovy-2-4-16-windows'>Groovy 2. [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-0-released.html b/blog/groovy-2-5-0-released.html
index 1a4118e..8768273 100644
--- a/blog/groovy-2-5-0-released.html
+++ b/blog/groovy-2-5-0-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.0 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7
Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.0 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-1-released.html b/blog/groovy-2-5-1-released.html
index 2e71ddd..a77c188 100644
--- a/blog/groovy-2-5-1-released.html
+++ b/blog/groovy-2-5-1-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.1 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7
Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.1 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-2-released.html b/blog/groovy-2-5-2-released.html
index f73b915..5801d58 100644
--- a/blog/groovy-2-5-2-released.html
+++ b/blog/groovy-2-5-2-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.2 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.2 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-2-windows.html b/blog/groovy-2-5-2-windows.html
index 1b86aa6..0103511 100644
--- a/blog/groovy-2-5-2-windows.html
+++ b/blog/groovy-2-5-2-windows.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.2 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.2 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows Installer Released (C [...]
<p>The Windows installer for Groovy 2.5.2 (community artifact) is available
from:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.2/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.2/</a></p>
</div></div></div></div></div><footer id='footer'>
diff --git a/blog/groovy-2-5-3-released.html b/blog/groovy-2-5-3-released.html
index 84f4d83..f5dd1ea 100644
--- a/blog/groovy-2-5-3-released.html
+++ b/blog/groovy-2-5-3-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-3-windows'>Groovy 2.5.3 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-3-windows'>Groovy 2.5.3 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-3-windows.html b/blog/groovy-2-5-3-windows.html
index 2c85fcd..1296ffe 100644
--- a/blog/groovy-2-5-3-windows.html
+++ b/blog/groovy-2-5-3-windows.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.3 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.3 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows Installer Released (C [...]
<p>The Windows installer for Groovy 2.5.3 (community artifact) is available
from:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.3/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.3/</a></p>
</div></div></div></div></div><footer id='footer'>
diff --git a/blog/groovy-2-5-4-released.html b/blog/groovy-2-5-4-released.html
index eea7cbc..17aa0cc 100644
--- a/blog/groovy-2-5-4-released.html
+++ b/blog/groovy-2-5-4-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.4 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.4 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-4-windows.html b/blog/groovy-2-5-4-windows.html
index 7433988..488f26b 100644
--- a/blog/groovy-2-5-4-windows.html
+++ b/blog/groovy-2-5-4-windows.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.4 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.4 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...]
<p>The Windows installer for Groovy 2.5.4 (community artifact) is available
from:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.4/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.4/</a></p>
</div></div></div></div></div><footer id='footer'>
diff --git a/blog/groovy-2-5-5-released.html b/blog/groovy-2-5-5-released.html
index ea11f27..a4ef4a5 100644
--- a/blog/groovy-2-5-5-released.html
+++ b/blog/groovy-2-5-5-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.5 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.5 released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-5-windows.html b/blog/groovy-2-5-5-windows.html
index d7f96cd..b4ddfe9 100644
--- a/blog/groovy-2-5-5-windows.html
+++ b/blog/groovy-2-5-5-windows.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.5 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-5-released'>Groovy 2.5.5 released</a></li><li><a href [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.5 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows Installer Released (C [...]
<p>The Windows installer for Groovy 2.5.5 (community artifact) is available at:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.5/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.5/</a></p>
</div></div></div></div></div><footer id='footer'>
diff --git a/blog/groovy-2-5-6-released.html b/blog/groovy-2-5-6-released.html
index 36c5ebc..f79c567 100644
--- a/blog/groovy-2-5-6-released.html
+++ b/blog/groovy-2-5-6-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.6 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7
Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.6 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows
Installer Released (Community Artifact)</a></li><li><a href= [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-7-and.html b/blog/groovy-2-5-7-and.html
index ed74ccd..d1f75f6 100644
--- a/blog/groovy-2-5-7-and.html
+++ b/blog/groovy-2-5-7-and.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released
(Community Artifacts)</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released<
[...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released
(Community Artifacts)</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows In
[...]
<p>The Windows installer for Groovy 2.5.7 (Community Artifact) is now
available:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.7/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-2.5.7/</a></p>
</div>
diff --git a/blog/groovy-2-5-7-released.html b/blog/groovy-2-5-7-released.html
index e444e60..97dd3f1 100644
--- a/blog/groovy-2-5-7-released.html
+++ b/blog/groovy-2-5-7-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.7 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-and'>Groovy 2.5.7 and 3.0.0-beta-1
Windows Installers Released (Community Artifacts)</a></ [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 2.5.7 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-and'>Groovy 2.5.7 and 3.0.0-beta-1
Windows Installers Released (Community Artifacts)</a></ [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-2-5-clibuilder-renewal.html
b/blog/groovy-2-5-clibuilder-renewal.html
index 59e88f7..8300d81 100644
--- a/blog/groovy-2-5-clibuilder-renewal.html
+++ b/blog/groovy-2-5-clibuilder-renewal.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Apache Groovy 2.5 CliBuilder Renewal</a></li><li><a
href='#_the_code_groovy_util_clibuilder_code_class_is_deprecated'
class='anchor-link'>The <code>groovy.util.CliBuilder</code> Class is
Deprecated</a></li><li><a href='#_typed_options' class='anchor-link'>Typed
Options</a> [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Apache Groovy 2.5 CliBuilder Renewal</a></li><li><a
href='#_the_code_groovy_util_clibuilder_code_class_is_deprecated'
class='anchor-link'>The <code>groovy.util.CliBuilder</code> Class is
Deprecated</a></li><li><a href='#_typed_options' class='anchor-link'>Typed
Options</a> [...]
<div class="sectionbody">
<div class="paragraph">
<p>The <code>CliBuilder</code> class for quickly and concisely building
diff --git a/blog/groovy-3-0-0-alpha.html b/blog/groovy-3-0-0-alpha.html
index 4129215..c10174e 100644
--- a/blog/groovy-3-0-0-alpha.html
+++ b/blog/groovy-3-0-0-alpha.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-alpha-4 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha1'>Groovy
3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></ [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-alpha-4 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha1'>Groovy
3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></ [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-3-0-0-alpha1.html b/blog/groovy-3-0-0-alpha1.html
index 43a6031..d4d8612 100644
--- a/blog/groovy-3-0-0-alpha1.html
+++ b/blog/groovy-3-0-0-alpha1.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></l [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community
Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></l [...]
<p>The Windows installer for Groovy 3.0.0-alpha-4 (Community Artifact) is
available from the usual place:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-3.0.0-alpha-4/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-3.0.0-alpha-4/</a>
Note this installer doesn’t include Spock since there isn’t a
Spock release compatible with Groovy 3.0.</p>
diff --git a/blog/groovy-3-0-0-beta.html b/blog/groovy-3-0-0-beta.html
index ea646bf..5bc67a9 100644
--- a/blog/groovy-3-0-0-beta.html
+++ b/blog/groovy-3-0-0-beta.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-1 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy
3.0.0-alpha-4 Released</a></li><li><a href='./groovy-3-0-0-beta2'>Gro [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-1 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy
3.0.0-alpha-4 Released</a></li><li><a href='./groovy-3-0-0-beta2'>Gro [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-3-0-0-beta1.html b/blog/groovy-3-0-0-beta1.html
index d60d4ea..a545752 100644
--- a/blog/groovy-3-0-0-beta1.html
+++ b/blog/groovy-3-0-0-beta1.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-2 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-beta2'>Groovy
3.0.0-beta-2 Windows Installer Released (Community Release)</a></li>< [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-2 Released</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-beta2'>Groovy
3.0.0-beta-2 Windows Installer Released (Community Release)</a></li>< [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-3-0-0-beta2.html b/blog/groovy-3-0-0-beta2.html
index c2fb28b..db6d535 100644
--- a/blog/groovy-3-0-0-beta2.html
+++ b/blog/groovy-3-0-0-beta2.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-2 Windows Installer Released (Community
Release)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-3-0-0-alpha1'>Groovy 3.0.0-alpha-4 Windows Installe [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 3.0.0-beta-2 Windows Installer Released (Community
Release)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em
0.625em; background-color: #eee'><span>Related posts</span></li><li><a
href='./groovy-3-0-0-beta1'>Groovy 3.0.0-beta-2 Released</a></li>< [...]
<p>The Windows installer for Groovy 3.0.0-beta-2 is now available:
<a
href="https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-3.0.0-beta-2/"
class="bare">https://groovy.jfrog.io/artifactory/dist-release-local/groovy-windows-installer/groovy-3.0.0-beta-2/</a></p>
</div>
diff --git a/blog/groovy-4-0-3-released.html b/blog/groovy-4-0-3-released.html
index 1b6ec11..4d836b9 100644
--- a/blog/groovy-4-0-3-released.html
+++ b/blog/groovy-4-0-3-released.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 4.0.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7
Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy 4.0.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li
style='padding: 0.35em 0.625em; background-color: #eee'><span>Related
posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4
Released</a></li><li><a href='./groovy-2-5-4-windows'>Groovy 2 [...]
<p>Dear community,</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-dauphine.html b/blog/groovy-dauphine.html
index ddaac7c..bfc313f 100644
--- a/blog/groovy-dauphine.html
+++ b/blog/groovy-dauphine.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Processing Results for the Critérium du Dauphiné</a></li><li><a
href='#_results_file' class='anchor-link'>Results file</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./parsin [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Processing Results for the Critérium du Dauphiné</a></li><li><a
href='#_results_file' class='anchor-link'>Results file</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./readin [...]
<div class="sectionbody">
<div class="paragraph">
<p>The 2023 <a href="https://www.criterium-du-dauphine.fr/en/">Critérium du
Dauphiné</a>
diff --git a/blog/groovy-haiku-processing.html
b/blog/groovy-haiku-processing.html
index 4173131..388690c 100644
--- a/blog/groovy-haiku-processing.html
+++ b/blog/groovy-haiku-processing.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Haiku processing</a></li><li><a
href='#_example_1_finding_the_distinct_letters' class='anchor-link'>Example 1:
Finding the distinct letters</a></li><li><a
href='#_example_2_splitting_letters_into_unique_and_duplicate_partitions'
class='anchor-link'>Example 2: Splitt [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Haiku processing</a></li><li><a
href='#_example_1_finding_the_distinct_letters' class='anchor-link'>Example 1:
Finding the distinct letters</a></li><li><a
href='#_example_2_splitting_letters_into_unique_and_duplicate_partitions'
class='anchor-link'>Example 2: Splitt [...]
<div class="sectionbody">
<div class="paragraph">
<p>This blog looks at some Groovy solutions for the examples in the
diff --git a/blog/groovy-list-processing-cheat-sheet.html
b/blog/groovy-list-processing-cheat-sheet.html
index 47489db..25d2a40 100644
--- a/blog/groovy-list-processing-cheat-sheet.html
+++ b/blog/groovy-list-processing-cheat-sheet.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy List Processing Cheat Sheet</a></li><li><a
href='#_declaring_lists' class='anchor-link'>Declaring lists</a></li><li><a
href='#_list_elements_and_properties' class='anchor-link'>List elements and
properties</a></li><li><a href='#_modifying_mutable_lists' class='ancho [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy List Processing Cheat Sheet</a></li><li><a
href='#_declaring_lists' class='anchor-link'>Declaring lists</a></li><li><a
href='#_list_elements_and_properties' class='anchor-link'>List elements and
properties</a></li><li><a href='#_modifying_mutable_lists' class='ancho [...]
<h2 id="_declaring_lists">Declaring lists</h2>
<div class="sectionbody">
<div class="paragraph">
diff --git a/blog/groovy-lucene.html b/blog/groovy-lucene.html
index 95020c6..b8117c2 100644
--- a/blog/groovy-lucene.html
+++ b/blog/groovy-lucene.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Searching with Lucene</a></li><li><a
href='#_a_regular_expression_for_project_names' class='anchor-link'>A regular
expression for project names</a></li><li><a
href='#_collecting_project_name_statistics_using_regex_matching'
class='anchor-link'>Collecting project name stati [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Searching with Lucene</a></li><li><a
href='#_a_regular_expression_for_project_names' class='anchor-link'>A regular
expression for project names</a></li><li><a
href='#_collecting_project_name_statistics_using_regex_matching'
class='anchor-link'>Collecting project name stati [...]
<a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><img style="border-radius:50%;height:48px;width:auto"
src="img/paulk-asert.png" alt="Paul King"></a>
<div style="display:grid;align-items:center;margin:0.1ex;padding:0ex">
<div><a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><span>Paul King</span></a></div>
diff --git a/blog/groovy-null-processing.html b/blog/groovy-null-processing.html
index cff4b6a..351b7b7 100644
--- a/blog/groovy-null-processing.html
+++ b/blog/groovy-null-processing.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Processing Nulls In Lists</a></li><li><a
href='#_libraries_covered' class='anchor-link'>Libraries covered</a></li><li><a
href='#_mutating_a_list_to_remove_its_nulls' class='anchor-link'>Mutating a
list to remove its nulls</a></li><li><a href='#_producing_a_new_list_ [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Processing Nulls In Lists</a></li><li><a
href='#_libraries_covered' class='anchor-link'>Libraries covered</a></li><li><a
href='#_mutating_a_list_to_remove_its_nulls' class='anchor-link'>Mutating a
list to remove its nulls</a></li><li><a href='#_producing_a_new_list_ [...]
<div class="sectionbody">
<div class="paragraph">
<p>This <a
href="https://www.programmergirl.com/java-remove-nulls-from-list/">article</a>
by <a href="https://www.programmergirl.com/about-me/">Shubhra Srivastava</a>
diff --git a/blog/groovy-record-performance.html
b/blog/groovy-record-performance.html
index 427014f..63c255e 100644
--- a/blog/groovy-record-performance.html
+++ b/blog/groovy-record-performance.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Record Performance</a></li><li><a href='#_our_domain'
class='anchor-link'>Our domain</a></li><li><a href='#_performance_of_hashcode'
class='anchor-link'>Performance of <code>hashCode</code></a></li><li><a
href='#_performance_of_equals' class='anchor-link'>Performanc [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Record Performance</a></li><li><a href='#_our_domain'
class='anchor-link'>Our domain</a></li><li><a href='#_performance_of_hashcode'
class='anchor-link'>Performance of <code>hashCode</code></a></li><li><a
href='#_performance_of_equals' class='anchor-link'>Performanc [...]
<div class="sectionbody">
<div class="paragraph">
<p>We highly recommend the excellent
diff --git a/blog/groovy-records.html b/blog/groovy-records.html
index ef1df93..90589ab 100644
--- a/blog/groovy-records.html
+++ b/blog/groovy-records.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Records</a></li><li><a href='#_introduction'
class='anchor-link'>Introduction</a></li><li><a href='#_optional_enhancements'
class='anchor-link'>Optional enhancements</a></li><li><a
href='#_internal_details' class='anchor-link'>Internal details</a></li><li><a
href='# [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Records</a></li><li><a href='#_introduction'
class='anchor-link'>Introduction</a></li><li><a href='#_optional_enhancements'
class='anchor-link'>Optional enhancements</a></li><li><a
href='#_internal_details' class='anchor-link'>Internal details</a></li><li><a
href='# [...]
<div class="sectionbody">
<div class="paragraph">
<p>A common scenario when programming is the need to group together a bunch
diff --git a/blog/groovy-release-train-4-0.html
b/blog/groovy-release-train-4-0.html
index 879b81f..8d7de08 100644
--- a/blog/groovy-release-train-4-0.html
+++ b/blog/groovy-release-train-4-0.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy release train: 4.0.4, 3.0.12, 2.5.18</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a
href='./groovy-2-5-5- [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy release train: 4.0.4, 3.0.12, 2.5.18</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy
3.0.0-alpha-4 Released</a></li><li><a href='./groovy-2 [...]
<p>It’s been a productive time for the Apache Groovy project recently.
We recently released versions 4.0.4, 3.0.12 and 2.5.18 with 42, 21 and 15 fixes
and improvements respectively. Two quick highlights for the 4.0.4 release
before getting into more details about the release.</p>
</div>
<div class="paragraph">
diff --git a/blog/groovy-sequenced-collections.html
b/blog/groovy-sequenced-collections.html
index d4ae824..fe856c0 100644
--- a/blog/groovy-sequenced-collections.html
+++ b/blog/groovy-sequenced-collections.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy and Sequenced Collections (JEP-431)</a></li><li><a
href='#_sequenced_collections_summary' class='anchor-link'>Sequenced
Collections Summary</a></li><li><a
href='#_accessing_the_first_and_last_element' class='anchor-link'>Accessing the
first and last element</a></li> [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy and Sequenced Collections (JEP-431)</a></li><li><a
href='#_sequenced_collections_summary' class='anchor-link'>Sequenced
Collections Summary</a></li><li><a
href='#_accessing_the_first_and_last_element' class='anchor-link'>Accessing the
first and last element</a></li> [...]
<div class="sectionbody">
<div class="paragraph">
<p>An exciting feature coming in JDK21 is
diff --git a/blog/groovy-text-similarity.html b/blog/groovy-text-similarity.html
index e54d4a7..6b461d1 100644
--- a/blog/groovy-text-similarity.html
+++ b/blog/groovy-text-similarity.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Text Similarity</a></li><li><a href='#_introduction'
class='anchor-link'>Introduction</a></li><li><a href='#_background'
class='anchor-link'>Background</a></li><li><a href='#_simple_string_metrics'
class='anchor-link'>Simple String Metrics</a></li><li><a href='#_pho [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Groovy Text Similarity</a></li><li><a href='#_introduction'
class='anchor-link'>Introduction</a></li><li><a href='#_background'
class='anchor-link'>Background</a></li><li><a href='#_simple_string_metrics'
class='anchor-link'>Simple String Metrics</a></li><li><a href='#_pho [...]
<a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><img style="border-radius:50%;height:48px;width:auto"
src="img/paulk-asert.png" alt="Paul King"></a>
<div style="display:grid;align-items:center;margin:0.1ex;padding:0ex">
<div><a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><span>Paul King</span></a></div>
diff --git a/blog/helloworldemoji.html b/blog/helloworldemoji.html
index fbfdea8..3e1c40b 100644
--- a/blog/helloworldemoji.html
+++ b/blog/helloworldemoji.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Hello World with Emojis</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./set-operations-with-groovy'>Set Operators with Groovy</a></li><li><a
href='./deep-learning-and-eclips [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Hello World with Emojis</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./deep-learning-and-eclipse-collections'>Deep Learning and Eclipse
Collections</a></li><li><a href='./a [...]
<p>In a <a
href="https://groovy.apache.org/blog/jvm-hello-world-with-groovy">previous blog
post</a>
we took an in-depth look at how to write a "hello world" class at the bytecode
level
using various libraries.</p>
diff --git a/blog/img/nb_create_groovy_application.png
b/blog/img/nb_create_groovy_application.png
new file mode 100644
index 0000000..f4076e4
Binary files /dev/null and b/blog/img/nb_create_groovy_application.png differ
diff --git a/blog/img/nb_debug.png b/blog/img/nb_debug.png
new file mode 100644
index 0000000..8515800
Binary files /dev/null and b/blog/img/nb_debug.png differ
diff --git a/blog/img/nb_enable_groovy_plugin.png
b/blog/img/nb_enable_groovy_plugin.png
new file mode 100644
index 0000000..4b24b12
Binary files /dev/null and b/blog/img/nb_enable_groovy_plugin.png differ
diff --git a/blog/img/nb_groovy5.png b/blog/img/nb_groovy5.png
new file mode 100644
index 0000000..0729cf3
Binary files /dev/null and b/blog/img/nb_groovy5.png differ
diff --git a/blog/img/nb_new_application_details.png
b/blog/img/nb_new_application_details.png
new file mode 100644
index 0000000..a4f9760
Binary files /dev/null and b/blog/img/nb_new_application_details.png differ
diff --git a/blog/img/nb_script_with_category.png
b/blog/img/nb_script_with_category.png
new file mode 100644
index 0000000..c404de4
Binary files /dev/null and b/blog/img/nb_script_with_category.png differ
diff --git a/blog/img/nb_simple_fractions_script.png
b/blog/img/nb_simple_fractions_script.png
new file mode 100644
index 0000000..ca1904e
Binary files /dev/null and b/blog/img/nb_simple_fractions_script.png differ
diff --git a/blog/index.html b/blog/index.html
index 9e498ff..10264db 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3' id='blog-index'><ul
class='nav-sidebar list'><li class='active'><a
href='/blog/'>Blogs</a></li><li><a href='using-groovy-with-apache-wayang'>Using
Groovy with Apache Wayang and Apache Spark</a></li><li><a
href='groovy-text-similarity'>Groovy Text Similarity</a></li><li><a
href='groovy-lucene'>Searching with Lucene</a></li><li><a
href='groovy-graph-databases'>Using [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3' id='blog-index'><ul
class='nav-sidebar list'><li class='active'><a
href='/blog/'>Blogs</a></li><li><a href='netbeans'>Using Apache NetBeans with
Apache Groovy</a></li><li><a href='using-groovy-with-apache-wayang'>Using
Groovy with Apache Wayang and Apache Spark</a></li><li><a
href='groovy-text-similarity'>Groovy Text Similarity</a></li><li><a
href='groovy-lucene'>S [...]
<div class='row'>
<div class='colset-3-footer'>
<div class='col-1'>
@@ -97,7 +97,7 @@
colors: am5.ColorSet.new(root, {})
}));
wc.data.setAll([
- { category: "concurrency", value: 2 }, { category: "groovy",
value: 82 }, { category: "actors", value: 2 }, { category: "pekko", value: 1 },
{ category: "gpars", value: 2 }, { category: "calendar", value: 1 }, {
category: "date", value: 3 }, { category: "jsr310", value: 1 }, { category:
"time", value: 1 }, { category: "data science", value: 7 }, { category:
"eclipse collections", value: 9 }, { category: "kmeans", value: 3 }, {
category: "emoji", value: 8 }, { category: "v [...]
+ { category: "groovy", value: 83 }, { category: "emoji", value:
8 }, { category: "set", value: 1 }, { category: "constraint programming",
value: 1 }, { category: "jacop", value: 2 }, { category: "or-tools", value: 2
}, { category: "choco", value: 3 }, { category: "jsr331", value: 1 }, {
category: "bytecode", value: 1 }, { category: "byte buddy", value: 1 }, {
category: "proguardcore", value: 1 }, { category: "asm", value: 1 }, {
category: "jvmadvent", value: 1 }, { categor [...]
]);
wc.labels.template.setAll({
paddingTop: 5,
diff --git a/blog/lego-bricks-with-groovy.html
b/blog/lego-bricks-with-groovy.html
index 07861f4..407b616 100644
--- a/blog/lego-bricks-with-groovy.html
+++ b/blog/lego-bricks-with-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Lego Bricks with Groovy</a></li><li><a
href='#_basic_collection_processing' class='anchor-link'>Basic Collection
Processing</a></li><li><a href='#_our_example_domain' class='anchor-link'>Our
example domain</a></li><li><a href='#_some_bricks_to_play_with'
class='anchor-link [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Lego Bricks with Groovy</a></li><li><a
href='#_basic_collection_processing' class='anchor-link'>Basic Collection
Processing</a></li><li><a href='#_our_example_domain' class='anchor-link'>Our
example domain</a></li><li><a href='#_some_bricks_to_play_with'
class='anchor-link [...]
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://twitter.com/TheDonRaab">Donald Raab</a> has continued has
interesting
diff --git a/blog/matrix-calculations-with-groovy-apache.html
b/blog/matrix-calculations-with-groovy-apache.html
index 6266fa8..137ab85 100644
--- a/blog/matrix-calculations-with-groovy-apache.html
+++ b/blog/matrix-calculations-with-groovy-apache.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Matrix calculations with Groovy, Apache Commons Math, ojAlgo, Nd4j
and EJML</a></li><li><a href='#_fibonacci'
class='anchor-link'>Fibonacci</a></li><li><a href='#_leslie_matrices'
class='anchor-link'>Leslie Matrices</a></li><li><a
href='#_encryption_with_matrices' class='a [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Matrix calculations with Groovy, Apache Commons Math, ojAlgo, Nd4j
and EJML</a></li><li><a href='#_fibonacci'
class='anchor-link'>Fibonacci</a></li><li><a href='#_leslie_matrices'
class='anchor-link'>Leslie Matrices</a></li><li><a
href='#_encryption_with_matrices' class='a [...]
<div class="sectionbody">
<div class="paragraph">
<p>This blogs looks at performing matrix calculations with Groovy
diff --git a/blog/zipping-collections-with-groovy.html b/blog/netbeans.html
similarity index 52%
copy from blog/zipping-collections-with-groovy.html
copy to blog/netbeans.html
index 86a9453..d7554cc 100644
--- a/blog/zipping-collections-with-groovy.html
+++ b/blog/netbeans.html
@@ -3,7 +3,7 @@
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--><head>
- <meta charset='utf-8'/><meta http-equiv='X-UA-Compatible'
content='IE=edge'/><meta name='viewport' content='width=device-width,
initial-scale=1'/><meta name='keywords' content='groovy, collections, zip,
eclipse collections, guava, vavr, streamex, jOOλ, ginq, gquery, emoji'/><meta
name='description' content='This post looks at zipping
collections.'/><title>The Apache Groovy programming language - Blogs - Zipping
Collections with Groovy</title><link href='../img/favicon.ico' type='imag [...]
+ <meta charset='utf-8'/><meta http-equiv='X-UA-Compatible'
content='IE=edge'/><meta name='viewport' content='width=device-width,
initial-scale=1'/><meta name='keywords' content='netbeans, groovy, apache,
debug, gradle'/><meta name='description' content='This post looks at using
NetBeans and Groovy.'/><title>The Apache Groovy programming language - Blogs -
Using Apache NetBeans with Apache Groovy</title><link href='../img/favicon.ico'
type='image/x-ico' rel='icon'/><script src='../js/m [...]
</head><body>
<div id='fork-me'>
<a href='https://github.com/apache/groovy'>
@@ -53,133 +53,184 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Zipping Collections with Groovy</a></li><li><a
href='#_what_is_zipping' class='anchor-link'>What is zipping?</a></li><li><a
href='#_groovy' class='anchor-link'>Groovy</a></li><li><a
href='#_eclipse_collections' class='anchor-link'>Eclipse
Collections</a></li><li><a href='# [...]
-<h2 id="_what_is_zipping">What is zipping?</h2>
-<div class="sectionbody">
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Using Apache NetBeans with Apache Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./parsing-json-with-groovy'>Parsing JSON with Groovy</a></li><li><a
href='./groovy-nul [...]
+<a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><img style="border-radius:50%;height:48px;width:auto"
src="img/paulk-asert.png" alt="Paul King"></a>
+<div style="display:grid;align-items:center;margin:0.1ex;padding:0ex">
+ <div><a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><span>Paul King</span></a></div>
+ <div><small><i>PMC Member</i></small></div>
+</div>
+ </div><br/><span>Published: 2025-02-25 10:15PM</span></p><hr/><div
class="quoteblock">
+<blockquote>
<div class="paragraph">
-<p>In computer science, <a
href="https://en.wikipedia.org/wiki/Zipping_(computer_science)">zipping</a>
translates sequences into sequences where, if visualized in two dimensions, the
rows and columns are swapped. So the zip of:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="prettyprint highlight"><code data-lang="groovy">[['a', 'b', 'c'],
-[ 1 , 2 , 3 ]]</code></pre>
+<p><em>Let’s try using the latest Apache NetBeans with Apache
Groovy.</em></p>
</div>
+</blockquote>
</div>
<div class="paragraph">
-<p>would be:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="prettyprint highlight"><code data-lang="groovy">[['a', 1],
-['b', 2],
-['c', 3]]</code></pre>
-</div>
+<p>The <a href="https://netbeans.apache.org/">Apache NetBeans</a> project
recently
+<a
href="https://netbeans.apache.org/front/main/blogs/entry/announce-apache-netbeans-25-released/">announced</a>
the release of Apache NetBeans 25. Let’s take it for a spin with
+<a href="https://groovy.apache.org/">Apache Groovy</a>.</p>
</div>
<div class="paragraph">
-<p>It’s a very handy operation and depending on the language, may be
supported for tuples, lists, streams and other sequences or aggregates.</p>
+<p>We’ll assume you have downloaded it as per the
+<a href="https://netbeans.apache.org/front/main/download/nb25/">NetBeans
download page</a>.
+If you haven’t used NetBeans with Groovy before, you might need to enable
+to Groovy plugin. Select <code>Tools → Plugins → Installed</code>,
Check <code>Groovy</code> and click on <code>Activate</code>, when finished,
you should see a screen like this:</p>
</div>
<div class="paragraph">
-<p>Java collections and streams don’t currently support such
functionality out-of-the-box with various workarounds discussed <a
href="https://dzone.com/articles/bridge-the-gap-of-zip-operation">here</a>. The
summary: language and library design is hard; any zip implementation that Java
provides would have some limitations baked in, so they instead provide the
necessary primitives to allow folks to build their own implementations based on
their specific requirements.</p>
+<p><span class="image"><img src="img/nb_enable_groovy_plugin.png"
alt="enabling the groovy plugin" width="600"></span></p>
</div>
<div class="paragraph">
-<p>We’ll look at what Groovy provides and some of the available Java
libraries that you can also use. The same caveats apply to these libraries,
each will have its own implementation strengths and weaknesses.</p>
+<p>Next, we are going to create a new project, select <code>File → New
Project…​ → Groovy with Gradle</code>.</p>
</div>
<div class="paragraph">
-<p>We’ll use an example inspired by this <a
href="https://twitter.com/TheDonRaab">Donald Raab</a> <a
href="https://donraab.medium.com/make-or-append-me-a-string-c654f247373a">blog
post</a>. It looks at zipping (and formatting) lists of strings containing
"fall"-inspired emoji. Yes, it’s late spring for the southern hemisphere
who also mostly call fall "autumn", but hopefully everyone will appreciate the
inspiration.</p>
+<p><span class="image"><img src="img/nb_create_groovy_application.png"
alt="creating a new project" width="600"></span></p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/fall_emojis.png" alt="some fall inspired
emojis" width="741"></span></p>
+<p>Select <code>Groovy Application</code> then click <code>Next</code>.</p>
</div>
-<hr>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_groovy">Groovy</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>Groovy uses the <code>transpose</code> method for zipping:</p>
+<p>Now, fill in the project details:</p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsGroovy.png"
alt="zipping example with Groovy"></span></p>
-</div>
+<p><span class="image"><img src="img/nb_new_application_details.png"
alt="entering project details" width="600"></span></p>
</div>
+<div class="paragraph">
+<p>We are going to create a little script that uses some fraction
functionality from the
+<a href="https://commons.apache.org/proper/commons-numbers/">Apache Commons
Number</a> library.
+We’ll call the project fractions. Click <code>Finish</code> when
ready.</p>
</div>
-<div class="sect1">
-<h2 id="_eclipse_collections">Eclipse Collections</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>Eclipse Collections has a <code>zip</code> method on its list classes:</p>
+<p>This now creates a partially filled out project using the Gradle
<code>init</code> task.
+It defines some useful libraries, sets up <code>test</code> and
<code>main</code> source sets for us,
+creates a versions catalog, and creates an <code>app</code> subproject.
+It has set up some nice dependencies like the
+<a href="https://spockframework.org/">Spock testing framework</a>,
+but we won’t use that in this post.</p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsEC.png" alt="zipping
example with Eclipse Collections"></span></p>
+<p>So, for our little script, we’ll prune back the dependencies to just
those we need.
+The versions toml file becomes:</p>
</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code data-lang="toml">[versions]
+groovy = "3.0.22"
+commons-numbers-fraction = "1.2"
+
+[libraries]
+groovy = { module = "org.codehaus.groovy:groovy", version.ref = "groovy" }
+numbers-fraction = { module = "org.apache.commons:commons-numbers-fraction",
version.ref = "commons-numbers-fraction" }</code></pre>
</div>
</div>
-<div class="sect1">
-<h2 id="_guava">Guava</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>Guava has a streams utility class with a <code>zip</code> method:</p>
-</div>
-<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsGuava.png" alt="zipping
example with Guava"></span></p>
+<p>We’ll also prune the Gradle build file slightly to this:</p>
</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code data-lang="groovy">plugins {
+ id 'groovy'
+ id 'application'
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation libs.groovy
+ implementation libs.numbers.fraction
+}
+
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(21)
+ }
+}
+
+application {
+ mainClass = 'App'
+}</code></pre>
</div>
</div>
-<div class="sect1">
-<h2 id="_streamex">StreamEx</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>StreamEx provides an enhanced stream library which supports
<code>zipWith</code>:</p>
+<p>We can now create our script. It’s just one <em>import</em> statement
+and then one line of code:</p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsStreamEx.png"
alt="zipping example with StreamEx"></span></p>
-</div>
+<p><span class="image"><img src="img/nb_simple_fractions_script.png"
alt="NetBeans IDE showing simple script"></span></p>
</div>
-</div>
-<div class="sect1">
-<h2 id="_vavr">Vavr</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>Vavr has a <code>zipWith</code> method on its list class:</p>
+<p>Running the script shows the expected output of <code>5 / 6</code>. The
fractions library
+is good at getting exact results which might otherwise be prone to rounding
errors.</p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsVavr.png" alt="zipping
example with Vavr"></span></p>
-</div>
-</div>
+<p>Let’s try a bit of Groovy fun. We’ll define a category to make
working with fractions a little nicer. Groovy supports a number of
<em>metapgramming</em> mechanisms that let you
+add methods to classes at compile time or runtime. In this case, we’ll
add a
+<code>div</code> method to the <code>Integer</code> class and a
<code>plus</code> method to the <code>Fraction</code> class.
+These happen to be methods designed to work with Groovy’s operator
overloading.</p>
</div>
-<div class="sect1">
-<h2 id="_jooλ">jOOλ</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>jOOλ has a <code>zip</code> method for its sequences:</p>
+<p>The <code>use</code> method lets us apply this change to a select code
block.
+That way we won’t impact using the <code>Integer</code> and
<code>Fraction</code> classes
+without these changes in other places.</p>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsJool.png" alt="zipping
example with jOOλ"></span></p>
+<p><span class="image"><img src="img/nb_script_with_category.png"
alt="NetBeans IDE showing script with category"></span></p>
</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_groovy_gquery">Groovy GQuery</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>If you are a fan of query-like DSLs, Groovy’s language integrated
query, GQuery (AKA GINQ), can also be used:</p>
+<p>The magic is in the code fragment <code>println 1 / 3 + 1 / 2</code>. The
expression <code>1 / 3</code>
+works like a factory method for fractions. The <code>+</code> operator adds
the fractions.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+As an aside, Groovy’s compiler configuration and scripting support
+means that we could hide away the definition of the
<code>FractionCategory</code>
+class and the <code>use</code> call if we wanted to, leaving a script with
+just the <code>println 1 / 3 + 1 / 2</code> statement. This might be
appropriate
+if we were setting up an environment for data scientists to write
+script with fractions.
+</td>
+</tr>
+</table>
</div>
<div class="paragraph">
-<p><span class="image"><img src="img/ZippingCollectionsGQ.png" alt="zipping
example with GQuery"></span></p>
+<p>But we haven’t finished yet. IDE’s should let us debug our code.
+Let’s put a breakpoint on the statement in the <code>plus</code> method
of the
+<code>FractionCategory</code> class, and then run with debug.</p>
</div>
<div class="paragraph">
-<p>This uses a special <code>_rn</code> "row number" pre-defined variable in
GQ expressions. It follows the same strategy as the IntStream "workaround" for
Java mentioned in this <a
href="https://www.baeldung.com/java-collections-zip">blog</a>.</p>
+<p><span class="image"><img src="img/nb_debug.png" alt="NetBeans IDE showing
script debugging"></span></p>
</div>
+<div class="paragraph">
+<p>Execution has halted. We can inspect the <code>self</code> and
<code>other</code> variables and
+set up add watch expressions like <code>other.doubleValue()</code>.</p>
</div>
+<div class="paragraph">
+<p>The default Groovy version generated by the Gradle init invocation earlier
+was the latest Groovy 3 version.
+But we can easily change that. Let’s swap to Groovy 5 (currently in
alpha releases)
+and look at a new Groovy 5 feature, the <code>OperatorRename</code> AST
transform.</p>
</div>
-<div class="sect1">
-<h2 id="_more_information">More information</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>The code examples can be found in the <a
href="https://github.com/paulk-asert/zipping-collections">repo</a></p>
+<p>If provides an alternative to our earlier category. Simplify slightly,
+it changes operator overloading in early parsing. You can use operator
+overloading in the source code, and it is renamed to normal method
+calls, removing the need for subsequent metaprogramming.</p>
</div>
+<div class="paragraph">
+<p><span class="image"><img src="img/nb_groovy5.png" alt="using Groovy
5"></span></p>
</div>
+<div class="paragraph">
+<p>So, the <code>+</code> in the assert statement at line 6 is converted into
+an <code>add</code> method call instead of Groovy’s normal
<code>plus</code> method call.
+You can read more about this new feature in the
+<a href="https://groovy-lang.org/releasenotes/groovy-5.0.html">Groovy 5
release notes</a>.</p>
</div></div></div></div></div><footer id='footer'>
<div class='row'>
<div class='colset-3-footer'>
diff --git a/blog/parsing-json-with-groovy.html
b/blog/parsing-json-with-groovy.html
index 2c3d300..25fd443 100644
--- a/blog/parsing-json-with-groovy.html
+++ b/blog/parsing-json-with-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Parsing JSON with Groovy</a></li><li><a
href='#_batteries_included_experience' class='anchor-link'>Batteries included
experience</a></li><li><a href='#_gradle'
class='anchor-link'>Gradle</a></li><li><a href='#_maven'
class='anchor-link'>Maven</a></li><li><a href='#_advance [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Parsing JSON with Groovy</a></li><li><a
href='#_batteries_included_experience' class='anchor-link'>Batteries included
experience</a></li><li><a href='#_gradle'
class='anchor-link'>Gradle</a></li><li><a href='#_maven'
class='anchor-link'>Maven</a></li><li><a href='#_advance [...]
<div class="sectionbody">
<div class="paragraph">
<p><span class="image right"><img src="img/json_logo.gif" alt="json logo"
width="120"></span>
diff --git a/blog/reading-and-writing-csv-files.html
b/blog/reading-and-writing-csv-files.html
index aca5544..b991204 100644
--- a/blog/reading-and-writing-csv-files.html
+++ b/blog/reading-and-writing-csv-files.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Reading and Writing CSV files with Groovy</a></li><li><a
href='#_introduction' class='anchor-link'>Introduction</a></li><li><a
href='#_commons_csv' class='anchor-link'>Commons CSV</a></li><li><a
href='#_opencsv' class='anchor-link'>OpenCSV</a></li><li><a href='#_jackson_da
[...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Reading and Writing CSV files with Groovy</a></li><li><a
href='#_introduction' class='anchor-link'>Introduction</a></li><li><a
href='#_commons_csv' class='anchor-link'>Commons CSV</a></li><li><a
href='#_opencsv' class='anchor-link'>OpenCSV</a></li><li><a href='#_jackson_da
[...]
<h2 id="_introduction">Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
diff --git a/blog/seasons-greetings-emoji.html
b/blog/seasons-greetings-emoji.html
index bd06b2b..5e1596e 100644
--- a/blog/seasons-greetings-emoji.html
+++ b/blog/seasons-greetings-emoji.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Season’s Greetings with Emojis</a></li><li><a
href='#_jdk_21_new_features' class='anchor-link'>JDK 21 New
Features</a></li><li><a href='#_playing_with_emojis_with_groovy'
class='anchor-link'>Playing with Emojis with Groovy</a></li><li><a
href='#_more_information' cla [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Season’s Greetings with Emojis</a></li><li><a
href='#_jdk_21_new_features' class='anchor-link'>JDK 21 New
Features</a></li><li><a href='#_playing_with_emojis_with_groovy'
class='anchor-link'>Playing with Emojis with Groovy</a></li><li><a
href='#_more_information' cla [...]
<div class="sectionbody">
<div class="paragraph">
<p>In a <a href="https://groovy.apache.org/blog/helloworldemoji">previous blog
post</a>
diff --git a/blog/set-operations-with-groovy.html
b/blog/set-operations-with-groovy.html
index ca4a872..aeceaff 100644
--- a/blog/set-operations-with-groovy.html
+++ b/blog/set-operations-with-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Set Operators with Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./deep-learning-and-eclipse-collections'>Deep Learning and Eclipse
Collections</a></li><li><a href='. [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Set Operators with Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a href='./helloworldemoji'>Hello
World with Emojis</a></li><li><a href='./deep-learning-and-eclipse-collectio
[...]
<p><a href="https://twitter.com/TheDonRaab">Donald Raab</a> posted <a
href="https://donraab.medium.com/comparing-set-operations-between-java-and-eclipse-collections-92cf1df28d3b">an
article</a> about set operators using Java collections and <a
href="https://github.com/eclipse/eclipse-collections">Eclipse Collections</a>.
<a
href="https://donraab.medium.com/comparing-set-operations-between-java-and-eclipse-collections-92cf1df28d3b">That
post</a> focuses
on the <em>union</em>, <em>intersection</em> and <em>difference</em>
operators. We’ll add in
<em>symmetric difference</em> since Groovy supports operator overloading for
that
diff --git a/blog/using-groovy-with-apache-wayang.html
b/blog/using-groovy-with-apache-wayang.html
index 66ddc05..700ca1a 100644
--- a/blog/using-groovy-with-apache-wayang.html
+++ b/blog/using-groovy-with-apache-wayang.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Using Groovy with Apache Wayang and Apache Spark</a></li><li><a
href='#_whiskey_clustering' class='anchor-link'>Whiskey
Clustering</a></li><li><a href='#_implementing_a_distributed_kmeans'
class='anchor-link'>Implementing a distributed KMeans</a></li><li><a
href='#_running [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Using Groovy with Apache Wayang and Apache Spark</a></li><li><a
href='#_whiskey_clustering' class='anchor-link'>Whiskey
Clustering</a></li><li><a href='#_implementing_a_distributed_kmeans'
class='anchor-link'>Implementing a distributed KMeans</a></li><li><a
href='#_running [...]
<a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><img style="border-radius:50%;height:48px;width:auto"
src="img/paulk-asert.png" alt="Paul King"></a>
<div style="display:grid;align-items:center;margin:0.1ex;padding:0ex">
<div><a href="https://github.com/paulk-asert/" target="_blank" rel="noopener
noreferrer"><span>Paul King</span></a></div>
diff --git a/blog/whiskey-clustering-with-groovy-and.html
b/blog/whiskey-clustering-with-groovy-and.html
index 8bee803..46cd3d3 100644
--- a/blog/whiskey-clustering-with-groovy-and.html
+++ b/blog/whiskey-clustering-with-groovy-and.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Whiskey Clustering with Groovy and Apache Ignite</a></li><li><a
href='#_whiskey_clustering' class='anchor-link'>Whiskey
Clustering</a></li><li><a href='#_apache_ignite' class='anchor-link'>Apache
Ignite</a></li><li><a href='#_implementation_details' class='anchor-link'>Imp
[...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Whiskey Clustering with Groovy and Apache Ignite</a></li><li><a
href='#_whiskey_clustering' class='anchor-link'>Whiskey
Clustering</a></li><li><a href='#_apache_ignite' class='anchor-link'>Apache
Ignite</a></li><li><a href='#_implementation_details' class='anchor-link'>Imp
[...]
<div class="sectionbody">
<div class="paragraph">
<p>In a previous <a
href="https://groovy.apache.org/blog/using-groovy-with-apache-wayang">blog
post</a>,
diff --git a/blog/wordle-checker.html b/blog/wordle-checker.html
index 5dd7a41..0d01a03 100644
--- a/blog/wordle-checker.html
+++ b/blog/wordle-checker.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Checking Wordle with Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-null-processing'>Groovy Processing Nulls In Lists</a></li><li><a
href='./groovy-list-proce [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Checking Wordle with Groovy</a></li></ul><br/><ul
class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color:
#eee'><span>Related posts</span></li><li><a
href='./groovy-null-processing'>Groovy Processing Nulls In Lists</a></li><li><a
href='./groovy-list-proce [...]
<p>This <a
href="https://donraab.medium.com/comparing-my-smalltalk-and-eclipse-collections-wordle-kata-solutions-4058ac7d8ca0">article</a>
by <a href="https://twitter.com/TheDonRaab">Donald Raab</a>
looks at writing a Wordle checker in Smalltalk and Java using <a
href="https://github.com/eclipse/eclipse-collections">Eclipse Collections</a>.
Let’s look at doing the same in Groovy.
We could easily use Eclipse Collections with Groovy
diff --git a/blog/working-with-sql-databases-with.html
b/blog/working-with-sql-databases-with.html
index 162927b..bb87bc8 100644
--- a/blog/working-with-sql-databases-with.html
+++ b/blog/working-with-sql-databases-with.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Working with SQL databases with Groovy and GraalVM</a></li><li><a
href='#_native_metadata' class='anchor-link'>Native Metadata</a></li><li><a
href='#_working_with_sql_in_groovy' class='anchor-link'>Working with SQL in
Groovy</a></li><li><a href='#_configuring_our_native_bu [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Working with SQL databases with Groovy and GraalVM</a></li><li><a
href='#_native_metadata' class='anchor-link'>Native Metadata</a></li><li><a
href='#_working_with_sql_in_groovy' class='anchor-link'>Working with SQL in
Groovy</a></li><li><a href='#_configuring_our_native_bu [...]
<div class="sectionbody">
<div class="paragraph">
<p>During the week, there was an interesting
diff --git a/blog/zipping-collections-with-groovy.html
b/blog/zipping-collections-with-groovy.html
index 86a9453..a695b56 100644
--- a/blog/zipping-collections-with-groovy.html
+++ b/blog/zipping-collections-with-groovy.html
@@ -53,7 +53,7 @@
</ul>
</div>
</div>
- </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Zipping Collections with Groovy</a></li><li><a
href='#_what_is_zipping' class='anchor-link'>What is zipping?</a></li><li><a
href='#_groovy' class='anchor-link'>Groovy</a></li><li><a
href='#_eclipse_collections' class='anchor-link'>Eclipse
Collections</a></li><li><a href='# [...]
+ </div><div id='content' class='page-1'><div
class='row'><div class='row-fluid'><div class='col-lg-3'><ul
class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a
href='#doc'>Zipping Collections with Groovy</a></li><li><a
href='#_what_is_zipping' class='anchor-link'>What is zipping?</a></li><li><a
href='#_groovy' class='anchor-link'>Groovy</a></li><li><a
href='#_eclipse_collections' class='anchor-link'>Eclipse
Collections</a></li><li><a href='# [...]
<h2 id="_what_is_zipping">What is zipping?</h2>
<div class="sectionbody">
<div class="paragraph">