Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 1696a6109516445d562e7f92661d0e53db1047dd https://github.com/xwiki/xwiki-platform/commit/1696a6109516445d562e7f92661d0... Author: Vincent Massol <[email protected]> Date: 2026-08-26 (Wed, 26 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Make the per-extension cardinality precision threshold configurable through the new activeinstalls2.extensionInstanceCountPrecisionThreshold property, so that the counts of the most widely installed extensions can be kept exact as the install base grows without waiting for a release. The global count keeps the hardcoded 40000, which is the maximum Elasticsearch supports. * Clamp both configured values in DefaultDataManager rather than only in DefaultActiveInstallsConfiguration, since any implementation of the ActiveInstallsConfiguration role can be injected there and an out-of-range value would overflow the over-request or be rejected by Elasticsearch. * Return a SequencedMap from countDistinctInstallsByExtension(), so that the documented bucket ordering is part of the type rather than only of the Javadoc. * Drop TooManyExtensionsException from the throws clauses, where it is redundant with the Exception it extends, and document it with @throws instead. * Share the wrapper-query construction between countInstalls() and the search requests. * Document the query restricting a count to the instances that are actually active on the DataManager methods, which counted over the whole index otherwise. * Document both ends of the maxExtensionCountPerQuery clamping in xwiki.properties. * Split the phase invalidating the single-instance fixture out of PingSenderIT#sendPingData() into its own @Order(2) test, so that the dependency between the two is enforced rather than only commented. * Raise the non-integration-tests instruction ratio from 0.11 to 0.12, the module now being at 0.12394 without the IT and 0.9256 with it. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications