Snowplow Java Tracker 0.7.0 released

24 January 2015  •  Alex Dean

We are pleased to release version 0.7.0 of the Snowplow Java Tracker. Many thanks to David Stendardi from Viadeo, former Snowplow intern Jonathan Almeida and Hamid from Trello for their contributions to this release!

In the rest of this post we will cover:

  1. Architectural updates
  2. API updates
  3. Testing updates
  4. Upgrading the Java Tracker
  5. Documentation
  6. Getting help

1. Architectural updates

Some Snowplow Java and Android Tracker users have reported serious performance issues running these trackers respectively in server and mobile environments. We are working to fix these issues as quickly as we can; in the meantime, to facilitate these improvements, we have decided to formally separate these trackers and evolve them separately.

As of this release, the Java Tracker repository no longer contains a Java Tracker Core library: this functionality has been merged back into the Java Tracker proper. Many thanks to David Stendardi for contributing this merge (#116).

The last release of the Android Tracker (0.2.0) is not affected by this change; the next Android Tracker release will remove its dependency on the Java Tracker Core library as well.

No longer having to support Android within the Java Tracker repository has allowed us to clean up the code somewhat: specifically, we have reintroduced formal dependencies on Apache Commons Codec and Google Guava where previously we had copy-and-pasted code to keep Android file sizes down.

2. API updates

The main update to the API is the merging of the core sub-package back into the main tracker. This means that if you have existing code referencing for example:

import com.snowplowanalytics.snowplow.tracker.core.DevicePlatform;

This import would become:

import com.snowplowanalytics.snowplow.tracker.DevicePlatform;

Besides this change, we have also started to clean-up the SchemaPayload and TrackerPayload classes, together with their shared Payload interface (#72, #126). However these updates should not affect the public API materially.

3. Testing updates

We have updated our Travis CI configuration to test the tracker on OpenJDK 6 and OracleJDK 8 as well as both JDK 7 versions.

Former Snowplow intern Jonathan Almeida has also added some Emitter and Tracker tests which verify the sent payloads using WireMock (#40) - many thanks Jonathan!

4. Upgrading the Java Tracker

The new version of the Snowplow Java Tracker is 0.7.0. The Java Setup Guide on our wiki has been updated to the latest version.

5. Documentation

You can find the updated Android and Java Tracker usage manual on our wiki. There are no material API changes.

You can find the full release notes on GitHub as Snowplow Java Tracker v0.7.0 release.

6. Getting help

The Java Tracker is still an immature project and we will be working hard with the community to improve it over the coming weeks and months; in the meantime, do please share any user feedback, feature requests or possible bugs.

Feel free to get in touch or raise an issue Java Tracker issues on GitHub!