Skip to content

Releases: matomo-org/matomo-java-tracker

v4.0.0

11 May 09:41
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

Breaking Changes

This is a major release. Please review the migration notes before upgrading.

Removed deprecated API ? All previously deprecated classes and methods have been removed:

  • The org.piwik.java.tracking compatibility package is gone entirely (PiwikRequest, PiwikTracker, PiwikDate, PiwikLocale, CustomVariable, EcommerceItem). Use the corresponding classes in org.matomo.java.tracking instead.
  • MatomoDate and MatomoLocale have been removed. Use java.time.Instant and org.matomo.java.tracking.parameters.Country respectively.
  • The top-level MatomoRequestBuilder class is gone. Use MatomoRequest.request() or MatomoRequest.MatomoRequestBuilder instead.
  • The MatomoRequest(int siteId, String actionUrl) constructor is gone. Use the MatomoRequest.request() builder instead.
  • Deprecated mutator methods on MatomoRequest have been removed (setCustomTrackingParameter, addCustomTrackingParameter, clearCustomTrackingParameter, enableEcommerce, getEcommerceItem, addEcommerceItem, clearEcommerceItems, getPageCustomVariable, setPageCustomVariable, getUserCustomVariable, getVisitCustomVariable, setUserCustomVariable, setVisitCustomVariable, getRequestDatetime, setRequestDatetime, setParameter, builder(), setDeviceResolution(String)). Use the builder API (MatomoRequest.request()...build()) instead.
  • Deprecated MatomoTracker constructors taking hostUrl, proxyHost, proxyPort, and timeout as individual arguments are gone. Use MatomoTracker(TrackerConfiguration) instead.
  • The sendRequestAsync(MatomoRequest, Function) overload is gone. Chain CompletableFuture.thenApply() on sendRequestAsync(MatomoRequest) instead.
  • The sendBulkRequest(Iterable, String) and sendBulkRequestAsync(Collection, String, Consumer) / sendBulkRequestAsync(Collection, String) overloads are gone. Set the auth token in TrackerConfiguration or on the requests directly.
  • The deprecated Country(Locale) constructor and Country.getLocale() / Country.setLocale(Locale) methods are gone. Construct Country from a country code string instead.

Spring Boot Starter now requires Spring Boot 4. The @NonNull annotation has been migrated from org.springframework.lang.NonNull to org.jspecify.annotations.NonNull. The PropertyMapper usage was updated to align with the Spring Boot 4 API (alwaysApplyingWhenNonNull() was removed).

New Features

New tracking parameters ? Extended coverage of the Matomo Tracking API with support for:

  • Client hints (clientHints)
  • Ecommerce product fields: ecommerceProductSku, ecommerceProductName, ecommerceProductCategory, ecommerceProductPrice
  • Bot recording mode (botRecordingMode)
  • HTTP status code (httpStatusCode)
  • Bandwidth (bandwidthBytes)
  • Source label (sourceLabel)
  • Media attributes: mediaId, mediaTitle, mediaResource, mediaType, mediaPlayerName, mediaTimeSpent, mediaLength, mediaProgressPercent, mediaTimeToPlay, mediaWidth, mediaHeight, mediaFullscreen, mediaSegmentsViewed

Bug Fixes

  • Java 8 compatibility fix ? JavaxHttpServletWrapper was using Enumeration.asIterator() (Java 9+) to iterate over HTTP header names. It has been replaced with a standard while loop.
  • Zero values now accepted ? Zero is now treated as a valid value for numeric tracking parameters such as idGoal, revenue, and ecommerce fields. Previously zero was treated as absent and omitted from requests.

Performance Improvements

  • Core module: hex encoding in VisitorId now uses a lookup table instead of String.format per byte; String.format calls in DeviceResolution, AcceptLanguage, EcommerceItem, and DaemonThreadFactory replaced with string concatenation; ServletMatomoRequest now computes cookieName.toLowerCase() once per cookie instead of six times; QueryCreator caches value.toString() to avoid calling it twice.
  • Java 11 Sender: URL construction no longer uses String.format; case-insensitive User-Agent header lookup no longer allocates a TreeMap; .trim().isEmpty() checks replaced with .isBlank(); debug log statements are guarded to avoid allocating cookie list copies when debug logging is disabled.

Dependency Updates

Dependency Old New
Spring Boot 3.4.2 4.0.5
JUnit Jupiter 5.11.4 6.0.3
SLF4J 2.0.16 2.0.17
Jetty EE10 12.0.16 12.1.8
Jetty (javax) 10.0.24 10.0.26
  • build(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.0 to 3.4.1 by @dependabot[bot] in #236
  • build(deps): bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.3 to 3.2.4 by @dependabot[bot] in #237
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.4 to 3.2.5 by @dependabot[bot] in #238
  • build(deps-dev): bump org.wiremock:wiremock from 3.5.2 to 3.5.3 by @dependabot[bot] in #239
  • build(deps-dev): bump org.wiremock:wiremock from 3.5.3 to 3.5.4 by @dependabot[bot] in #240
  • build(deps): bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.1 to 3.1.2 by @dependabot[bot] in #242
  • build(deps): bump org.apache.maven.plugins:maven-install-plugin from 3.1.1 to 3.1.2 by @dependabot[bot] in #241
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.4 to 4.8.5 by @dependabot[bot] in #244
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.4.0 to 4.8.5.0 by @dependabot[bot] in #243
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.8 to 12.0.9 by @dependabot[bot] in #245
  • build(deps): bump org.owasp:dependency-check-maven from 9.1.0 to 9.2.0 by @dependabot[bot] in #247
  • build(deps-dev): bump org.eclipse.jetty:jetty-servlet from 10.0.20 to 10.0.21 by @dependabot[bot] in #246
  • build(deps): bump org.sonatype.plugins:nexus-staging-maven-plugin from 1.6.13 to 1.7.0 by @dependabot[bot] in #251
  • build(deps): bump org.assertj:assertj-core from 3.25.3 to 3.26.0 by @dependabot[bot] in #249
  • build(deps-dev): bump org.wiremock:wiremock from 3.5.4 to 3.6.0 by @dependabot[bot] in #248
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.5 to 3.3.0 by @dependabot[bot] in #250
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.9 to 12.0.10 by @dependabot[bot] in #254
  • build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 by @dependabot[bot] in #252
  • build(deps): bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.1 to 3.5.0 by @dependabot[bot] in #253
  • build(deps): bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.3.1 to 3.4.0 by @dependabot[bot] in #255
  • build(deps): bump jakarta.servlet:jakarta.servlet-api from 6.0.0 to 6.1.0 by @dependabot[bot] in #259
  • build(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 by @dependabot[bot] in #258
  • build(deps): bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.0 by @dependabot[bot] in #257
  • build(deps): bump org.apache.maven.plugins:maven-release-plugin from 3.0.1 to 3.1.0 by @dependabot[bot] in #256
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.5 to 4.8.6 by @dependabot[bot] in #264
  • build(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by @dependabot[bot] in #263
  • build(deps): bump org.apache.maven.plugins:maven-clean-plugin from 3.3.2 to 3.4.0 by @dependabot[bot] in #262
  • build(deps-dev): bump org.wiremock:wiremock from 3.6.0 to 3.7.0 by @dependabot[bot] in #261
  • build(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.5.0 to 3.6.0 by @dependabot[bot] in #260
  • build(deps-dev): bump org.wiremock:wiremock from 3.7.0 to 3.8.0 by @dependabot[bot] in #266
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.5.0 to 4.8.6.2 by @dependabot[bot] in #269
  • build(deps): bump org.junit.jupiter:junit-jupiter from 5.10.2 to 5.10.3 by @dependabot[bot] in #268
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.3.0 to 3.3.1 by @dependabot[bot] in https://github.com/matomo-org/matomo-java-tracker/pu...
Read more

v3.4.0

19 Apr 18:25

Choose a tag to compare

Changes

  • No changes

v3.3.1

19 Apr 18:13

Choose a tag to compare

Changes

📦 Dependency updates

19 changes
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.7 to 12.0.8 (#227) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.3.1 to 4.8.4.0 (#234) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.2 to 3.2.3 (#233) @dependabot
  • build(deps): bump slf4j.version from 2.0.12 to 2.0.13 (#232) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0 (#231) @dependabot
  • build(deps): bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12 (#228) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1 (#229) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.3 to 4.8.4 (#230) @dependabot
  • build(deps): bump actions/configure-pages from 4 to 5 (#226) @dependabot
  • build(deps-dev): bump org.wiremock:wiremock from 3.4.2 to 3.5.2 (#223) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.1 to 3.2.2 (#224) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.10 to 9.1.0 (#225) @dependabot
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.3 to 3.2.4 (#221) @dependabot
  • build(deps): bump org.projectlombok:lombok from 1.18.30 to 1.18.32 (#222) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.9 to 9.0.10 (#218) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0 (#219) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.0 to 3.2.1 (#220) @dependabot
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.6 to 12.0.7 (#216) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.0 (#217) @dependabot

v3.3.0

09 Mar 12:39

Choose a tag to compare

Changes

📦 Dependency updates

  • build(deps-dev): bump org.wiremock:wiremock from 3.4.1 to 3.4.2 (#213) @dependabot
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.2 to 3.2.3 (#214) @dependabot
  • build(deps): bump scacap/action-surefire-report from 1.7.3 to 1.8.0 (#212) @dependabot
  • build(deps-dev): bump org.wiremock:wiremock from 3.3.1 to 3.4.1 (#211) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.3.0 to 4.8.3.1 (#210) @dependabot

v3.2.1

06 Feb 22:03

Choose a tag to compare

Changes

📦 Dependency updates

40 changes
  • build(deps): bump slf4j.version from 2.0.11 to 2.0.12 (#205) @dependabot
  • build(deps): bump org.assertj:assertj-core from 3.25.2 to 3.25.3 (#206) @dependabot
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.5 to 12.0.6 (#207) @dependabot
  • build(deps): bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2 (#208) @dependabot
  • build(deps-dev): bump org.eclipse.jetty:jetty-servlet from 10.0.19 to 10.0.20 (#209) @dependabot
  • build(deps): bump release-drafter/release-drafter from 5 to 6 (#204) @dependabot
  • build(deps): bump org.assertj:assertj-core from 3.25.1 to 3.25.2 (#203) @dependabot
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.1 to 3.2.2 (#201) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.7 to 9.0.9 (#202) @dependabot
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.2.0 to 3.2.1 (#186) @dependabot
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.4 to 12.0.5 (#187) @dependabot
  • build(deps-dev): bump org.eclipse.jetty:jetty-servlet from 10.0.18 to 10.0.19 (#188) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.3 to 3.2.5 (#200) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5 (#198) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.2.0 to 4.8.3.0 (#199) @dependabot
  • build(deps): bump scacap/action-surefire-report from 1.7.2 to 1.7.3 (#197) @dependabot
  • build(deps): bump slf4j.version from 2.0.10 to 2.0.11 (#194) @dependabot
  • build(deps): bump org.assertj:assertj-core from 3.25.0 to 3.25.1 (#195) @dependabot
  • build(deps): bump slf4j.version from 2.0.9 to 2.0.10 (#192) @dependabot
  • build(deps): bump org.assertj:assertj-core from 3.24.2 to 3.25.0 (#193) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.1 (#189) @dependabot
  • build(deps): bump actions/deploy-pages from 3 to 4 (#190) @dependabot
  • build(deps): bump actions/upload-pages-artifact from 2 to 3 (#191) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.2 to 3.2.3 (#181) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.4 to 9.0.7 (#182) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.2 to 3.2.3 (#183) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.2 to 4.8.3 (#184) @dependabot
  • build(deps): bump github/codeql-action from 2 to 3 (#185) @dependabot
  • build(deps-dev): bump org.eclipse.jetty.ee10:jetty-ee10-servlet from 12.0.3 to 12.0.4 (#179) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.2 to 9.0.4 (#180) @dependabot
  • build(deps): bump actions/deploy-pages from 2 to 3 (#176) @dependabot
  • build(deps): bump actions/setup-java from 3 to 4 (#177) @dependabot
  • build(deps): bump actions/configure-pages from 3 to 4 (#178) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.1 to 4.8.2 (#172) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.1.0 to 4.8.2.0 (#173) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.2 to 3.6.3 (#174) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 9.0.1 to 9.0.2 (#175) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 8.4.3 to 9.0.1 (#169) @dependabot
  • build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.1.5 to 3.2.0 (#170) @dependabot
  • build(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.4.5 to 3.5.0 (#171) @dependabot

v3.2.0

20 Nov 23:32

Choose a tag to compare

Changes

📦 Dependency updates

  • build(deps-dev): bump org.eclipse.jetty:jetty-servlet from 9.4.53.v20231009 to 10.0.18 (#167) @dependabot
  • build(deps): bump org.owasp:dependency-check-maven from 8.4.2 to 8.4.3 (#166) @dependabot

What's Changed

  • Automatic Setting of goalId to 0 in Presence of Ecommerce Parameters #162
  • Update Matomo Java Tracker for Singular Parameters #163

Full Changelog: v3.1.1...v3.2.0

v3.1.1

14 Nov 22:39

Choose a tag to compare

Changes

Enhancements

📦 Dependency updates

  • build(deps): bump actions/checkout from 3 to 4 (#160) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.8.0 to 4.8.1 (#157) @dependabot
  • build(deps): bump com.github.spotbugs:spotbugs-maven-plugin from 4.7.3.6 to 4.8.1.0 (#159) @dependabot

v3.0.6

13 Nov 16:24

Choose a tag to compare

Made Java EE Servlet module Java 8 compatible

v3.0.5

13 Nov 15:51

Choose a tag to compare

Changes

  • No changes

v3.0.2

13 Nov 13:40

Choose a tag to compare

Add a servlet module for Java EE (javax) for older projects to be compatible