From 16dbbcc26a47b1d098609d305e40998a7bda959c Mon Sep 17 00:00:00 2001
From: Vincent Massol <vincent@massol.net>
Date: Tue, 16 Feb 2016 11:42:45 +0100
Subject: [PATCH] XWIKI-13103: Aggregate Java versions by major + minor only

---
 .../ActiveInstalls/JavaVersionsData.xml       | 24 ++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/xwiki-platform-core/xwiki-platform-activeinstalls/xwiki-platform-activeinstalls-server/xwiki-platform-activeinstalls-server-ui/src/main/resources/ActiveInstalls/JavaVersionsData.xml b/xwiki-platform-core/xwiki-platform-activeinstalls/xwiki-platform-activeinstalls-server/xwiki-platform-activeinstalls-server-ui/src/main/resources/ActiveInstalls/JavaVersionsData.xml
index ad8ea5646ec..3f74eacd7cd 100644
--- a/xwiki-platform-core/xwiki-platform-activeinstalls/xwiki-platform-activeinstalls-server/xwiki-platform-activeinstalls-server-ui/src/main/resources/ActiveInstalls/JavaVersionsData.xml
+++ b/xwiki-platform-core/xwiki-platform-activeinstalls/xwiki-platform-activeinstalls-server/xwiki-platform-activeinstalls-server-ui/src/main/resources/ActiveInstalls/JavaVersionsData.xml
@@ -31,8 +31,8 @@
   <parent>ActiveInstalls.JavaVersions</parent>
   <author>xwiki:XWiki.Admin</author>
   <contentAuthor>xwiki:XWiki.Admin</contentAuthor>
-  <date>1455616800000</date>
-  <contentUpdateDate>1455616800000</contentUpdateDate>
+  <date>1455618836000</date>
+  <contentUpdateDate>1455618836000</contentUpdateDate>
   <version>1.1</version>
   <title>Active Installs Versions Data</title>
   <comment/>
@@ -77,13 +77,25 @@
 #else
   ## Generate table with data
   #set ($jsonItems = $result.getAsJsonObject('aggregations').getAsJsonObject('versions').getAsJsonArray('buckets'))
-  $headingLine
-  #set ($count = 0)
+  ## We're only interested in displaying major Java versions, so we only take into account the first 2 digits in 
+  ## the Java version string, e.g. "1.8" for "1.8.0_66"
+  #set ($versionMap = {})
   #foreach ($jsonItem in $jsonItems)
+    #set ($version = $jsonItem.getAsJsonPrimitive('key').getAsString())
     #set ($value = $jsonItem.getAsJsonObject('instanceId_count').getAsJsonPrimitive('value').getAsLong())
+    #set ($shortVersion = $version.substring(0, 3))
+    #set ($count = $versionMap.get($shortVersion))
+    #if ("$!count" == '')
+      #set ($count = 0)
+    #end
+    #set ($discard = $versionMap.put($shortVersion, $mathtool.add($count, $value)))
+  #end
+  $headingLine
+  #set ($count = 0)
+  #foreach ($item in $versionMap.keySet())
+    #set ($value = $versionMap.get($item))
     #if ($velocityCount &lt;= 10)
-      #set ($version = $jsonItem.getAsJsonPrimitive('key').getAsString())
-      |$version|$value
+      |$item|$value
     #else
       #set ($count = $mathtool.add($count, $value))
     #end
-- 
GitLab