SportsTracker Changelog

What's new in SportsTracker 7.9.1

Jan 26, 2023
  • Project changes:
  • Bugfix: section header labels are now using bold font again on macOS
  • Updated JavaFX / OpenJFX to version 19.0.2.1
  • contains critical bugfixes for Apple Silicon support (crashed before)
  • updated Kotlin to version 1.7.10
  • updated EasyDI to version 0.6.0
  • replaced outdated dependency javax.inject with new jakarta.inject
  • updated sqlite-jdbc to version 3.40.0
  • updated jdom2 to version 2.0.6.1
  • updated commons-cli to version 1.5.0
  • updated JUnit to version 5.8.2
  • updated Mockito to version 4.4.0
  • SportsTracker changes:
  • SQLite Exporter:
  • table Exercise now uses the SportSubType and Equipment primary keys (ID) for referencing sport subtypes and equipments
  • columns SportSubType.SPORT_SUBTYPE_ID and Equipment.EQUIPMENT_ID are not needed anymore and were removed
  • -> makes SQL queries a lot simpler and faster
  • added table Meta for storing database schema version and update timestamp
  • Entry Filter (Exercise, Note, Weight): added support for searching for multiple words in any order (AND logic, case-insensitive)
  • Automatic sport type and subtype mapping when importing Garmin FIT files
  • user configuration is needed for mapping the SportsTracker sport types and subtypes to the matching Garmin FIT sport types and subtypes (as displayed in ExerciseViewer)
  • Sport Type Dialog: added UI for mapping FIT sport types and subtypes
  • SQLite Exporter: added FIT ID columns to SportType and SportSubType tables
  • ExerciseViewer changes:
  • updated Garmin FIT SDK library to version 21.94.0, provides bugfixes and support for newer Garmin devices (e.g. Garmin Forerunner 955)

New in SportsTracker 7.4.1 (Oct 4, 2017)

  • SPORTSTRACKER CHANGES:
  • Calendar View:
  • Issue #141: today is highlighted in a blue circle (red for sundays)
  • removed layout workarounds (JavaFX bugs have been fixed)
  • STApplication: removed Swing Look&Feel workaround (no Swing map anymore)
  • Refactoring: removed resource lookup in entity classes
  • updated Java runtime to Java SE/FX 8u144, contains a bugfix for a memory leak in the WebView used by LeafletMap
  • EXERCISEVIEWER CHANGES:
  • removed compiler warnings in LeafletMap component
  • updated Kotlin to version 1.1.50
  • TimexPwxParser: bugfixes for parsing of recording modes, speed and distance data
  • Diagram Panel: missing values are not longer displayed as 0 values -> improves readability of diagrams
  • ported all exercise parsers and the unit tests written in Groovy to Kotlin:
  • less dependencies, Groovy is not needed anymore (was big)
  • parser implementations are now faster and more stable (Kotlin is typesafe)
  • refactoring of PolarHrmParser and some other parsers implemented in Groovy (huge monolithic code blocks)
  • Kotlin can now be used in all modules together with Java (no more mixed compilation issues with Groovy code)
  • ported all data, core and UI classes from Java to Kotlin:
  • less and simpler code, better maintainable
  • null safety in data model and view classes => no exceptions anymore when specific values are missing / null
  • Issue #159: added support for Garmin Edge 820 exercise files:
  • updated Garmin FIT SDK library to version 20.33.01, previous FIT library was not able to parse exercise files with the new protocol format 2.0
  • added unit test for a Garmin Edge 820 exercise file

New in SportsTracker 7.4.0 (Mar 31, 2017)

  • The bundled Java runtime has been updated to Java SE/FX 8u121
  • ExerciseViewer changes:
  • Issue #153: added chart smoothing in diagram view for all axis types
  • Preferences: added option for displaying smoothed charts, enabled by default
  • Preferences: renamed option for displaying a secondary chart (some users can loose their previous preferences, needs to be set again)
  • Garmin TCX parser: added support for run cadence sensors (issue #154) (no need to add to Garmin FIT parser, already supported there)
  • Track Panel: use of Leaflet map viewer instead of Swing-based JXMapViewer2
  • Fixed memory leaks when closing the ExerciseViewer window

New in SportsTracker 7.3.0 (Oct 14, 2016)

  • SportsTracker changes:
  • removed invalid version numbers from french and spanish translations
  • bugfix #51 for importing HRM exercise files: import duration only, when no distance is being recorded for the selected sport type
  • Export of all SportsTracker application data to a SQLite database, provides much more capabilities for data analysis, statistics or migration (for advanced users with SQL skills, see README.txt for documentation)
  • added generic filter for all entry types, note and weight entries are now filterable too (user can select the filter type in the filter dialog)
  • updated ControlsFX to version 8.40.12 (provides bugfixes and solves JDK compatibility issues)
  • updated JDOM to version 2.0.6 (bugfixes)
  • updated JUnit to version 4.12
  • updated Mockito to version 1.10.19
  • ExerciseViewer changes:
  • Pull Request #9: Improved support for Garmin Fenix (2) exercise files, the missing max speed, avg and max heartrate are now calculated (contributed by Alexander Rampp )
  • updated map viewer component JXMapViewer2 to version 2.2 (bugfixes)

New in SportsTracker 7.2.0 (Mar 28, 2016)

  • This release contains many small improvements and bugfixes. The Exercise Viewer now displays the device names and support has been added for Polar RCX3 devices. The updated Garmin FIT library also provides support for many new devices. Internally the DI framework has been replaced (less dependencies and faster startup) and the native packaging has been improved.
  • Native SportsTracker packages are now containing all documentation files (README, LICENSE, CHANGES, AUTHORS, ...)
  • Native SportsTracker packages are displaying the GPLv2 license text before installation (tested on Mac OS X)
  • Exercise Dialog: preselection of sport type and subtype when adding new exercises, if there is only one choice
  • update of ControlFX to 8.40.10 for compatibility to Java 8u60+
  • removed cyclic dependencies on STController in all entry views
  • update of the bundled Java runtime to Java SE/FX 8u77, which contains many bug and security fixes
  • updated javafx-maven-plugin to version 8.2.0:
  • simpler inclusion of additional app resources
  • GPL license is displayed before installation (Mac / Windows)
  • better UI when opening the DMG package on Mac OS X
  • use of EasyDI 0.3.0 instead of Guice for dependency injection:
  • much faster startup time (DI takes about 200 msec instead of 700 msec)
  • much smaller library (6 KByte instead of 2,7 MByte for Guice incl. Guava)
  • less memory usage after startup (about 10 MByte)

New in SportsTracker 7.1.0 (Jun 22, 2015)

  • SportsTracker changes:
  • update of the bundled Java runtime to Java SE/FX 8u45, which contains many bugfixes
  • removed workarounds for Java versions earlier than 8u40
  • Exercise, Note and Weight Dialogs: use of one formatted text input for the entry time instead of separate inputs for hour and minute (always ensures valid time values and displayed format)
  • Overview Dialog: use of a spinner control for the year selection, incl. mouse wheel support
  • Travis CI: use of latest Oracle Java release (8u45) from 3rd party PPA repo (missing in Ubuntu repository)
  • update of ControlFX to 8.40.9
  • added support of HiDPI / Retina displays for all icons and text (all images and icons are now available as @2x-versions)
  • ExerciseViewer changes:
  • Bugfixes in Diagram Panel (bug #49):
  • time axis in diagram must always start at 00:00 (the timezone offset needs to be ignored)
  • display lap markers at proper time positions
  • display proper formatted time in chart tooltips
  • Translations:
  • updated french translation by Olivier M.

New in SportsTracker 7.0.0 (Feb 27, 2015)

  • SportsTracker 7.0.0 has finally been released. Here's a list of the major updates, you can find all changes in the changelog.
  • Full rewrite of all SportsTracker and ExerciseViewer user interfaces by using the JavaFX toolkit instead of Swing. Swing has been deprecated, JavaFX is the successor supported by Oracle.
  • JavaFX provides an improved look & feel (same on all platforms), which now also works perfectly on Linux.
  • Native SportsTracker packages and installers for Windows, Mac OS X and Linux. The packages include the Java Runtime Environment (JRE), this makes installation much easier. A Java installation is not needed anymore, SportsTracker always uses the proper Java runtime now.
  • Added instant input validation in all SportsTracker dialogs.
  • Redesigned Calendar View.
  • New icon set, based on the IcoMoon project.
  • The Track Panel in the ExerciseViewer now provides a slider for replaying the exercise track on the map.
  • Use of Java 8 language features in ExerciseViewer.
  • Added korean translation (by Tae Young Ko) and updated french (by Nicolas Ollivier) and spanish (by Luis Llorente Campo) translations.
  • 2014/07/17: The version control system (VCS) of the SportsTracker project has been migrated from Mercurial to Git and the project repository has been moved from SourceForge to GitHub. The URL of the new GitHub project repository is https://github.com/ssaring/sportstracker.
  • The main reasons for the migration are quite simple:
  • The collaboration possibilities at GitHub (e.g. forks, pull requests, reviews) are much better then at SourceForge. It's now very easy to contribute fixes and enhancements and integrate work from other developers.
  • The adoption of Git in my personal projects and at work is much bigger then for Mercurial, so it's better to use the tool with more experiences.
  • The complete history of the Mercurial repository has been migrated to the new Git repository. The Mercurial repository at SourceForge has been deleted.
  • All the other project features (Bug Tracker, Feature Requests, Forum, ...) will stay at the SourceForge project site. The GitHub issue tracker is currently quite minimalistic, maybe it will be used some time in the future.

New in SportsTracker 6.0.0 (Apr 14, 2014)

  • switched compiler to Java 8 (except for module st-exerciseviewer)
  • replaced mocking framework EasyMock 3.2 with Mockito 1.9.5 (much better API and easier to use)
  • switch to IntelliJ IDEA 13 as project IDE, added project files to VCS
  • reformated all Java and Groovy source files to common Java source code format guidelines (reformating done by IntelliJ IDEA)
  • cleanup of import statements in all Java and Groovy source files (done by IntelliJ IDEA)
  • fixed all compiler warnings
  • fixed warnings reported by the IntelliJ IDEA Code Inspector
  • fixed warnings found by IntelliJ IDEA code inspector
  • removed Java WebStart installation option (since Java 7u40 there were security warnings on each ST start due to missing signed certificates) -> free signed certificates are not available for open source projects
  • use of Lambda features in module st-util
  • use of Lambda features in module sportstracker
  • use new Java Date Time API (JSR 310) in all SportsTracker modules provides a better API for creation, conversion and formatting provides type separation of date, time and date time (less errors)

New in SportsTracker 5.8.0 (Apr 14, 2014)

  • use of new default Mercurial repository after SourceForge project platform update
  • update of libraries to recent versions: update of Groovy to version 2.1.7 update of JFreeChart to version 1.0.15 update of JUnit to 4.11 update of EasyMock to 3.2
  • update of Maven plugins to recent versions: update of maven-compiler-plugin to version 3.2 update of groovy-eclipse-compiler to version 2.8.0-01 update of groovy-eclipse-batch to version 2.1.5-03 update of maven-dependency-plugin to version 2.8
  • successfull tests of SportsTracker with Java 8 EA (build 106)
  • Translations: updated french translation

New in SportsTracker 5.7.0 (Jan 14, 2013)

  • The major changes are support for reading and displaying Garmin Forerunner 910XT and Timex Ironman Run Trainer exercise files. The error handling of the exercise parser has been improved and the spanish and german translations were updated.

New in SportsTracker 5.6.0 (Aug 30, 2012)

  • Findbugs bugfixes in all modules (minor code improvements)
  • Mac OS X application bundle creation:
  • The huge JRE is not included anymore, the app size is now 12 MByte
  • instead of 67 before. Since JDK 7u6 for OS X the launcher is able to find
  • the installed JRE (needs to be installed!)
  • The appbundler Ant library is now included, no installation needed.
  • Java WebStart for Mac OS X is working again, when JDK / JRE 7u6 or later
  • is installed.
  • Overview Dialog: improved weight graph (SF feature request #3554633):
  • Missing weight values will be interpolated instead of set to 0.
  • Calendar View: (SF feature request #3082257):
  • current day is better recognizable by using a different color (blue for
  • weekdays, red/orange for sundays)
  • Overview Dialog:
  • new diagram mode for sport subtype overview of a selected sport type
  • (shows the distances per sport subtype of one sport type)
  • new diagram mode for equipment usage overview of a selected sport type
  • (shows the distances per equipment of one sport type)
  • bigger size, much more readable (still fits on 1024x768 displays)
  • update to Groovy 2.0.1, usage of new Groovy features
  • use only the required Groovy modules instead of groovy-all dependency
  • => the Groovy libraries are now about 3 MByte smaller
  • use of the new Groovy-Eclipse compiler plugin for Maven (2.7.0_01)
  • usage of the new @TypeChecked type checking at compilation time in all
  • Groovy unit tests, type errors are now found immediately
  • usage of the new @TypeChecked type checking makes no sense for the
  • Groovy exercise parsers, the dynamic XML parsing features can't be used
  • anymore
  • update of JDOM library to version 2.0.2
  • ExerciseViewer changes:
  • Garmin TCX Parser: Fix for SourceForge-Bug #3551583
  • (Fail to parse tcx files with laps without altitude)
  • Track Panel: added tooltips to all track points, so the track can now be
  • followed easily on the map. The tooltips show:
  • track point number, time, distance
  • altitude, heartrate, speed, temperature (if available)
  • Translations:
  • updated german translation by Stefan Saring
  • updated french translation by Nicolas Ollivier

New in SportsTracker 5.5.0 (Jul 24, 2012)

  • Bugfix in the Timex PWX exercise parser (occurs e.g. on Timex Ironman GPS T5K444 after installing a firmware update)
  • update of JDOM library from version 1.1.3 to 2.0.1, (API changes) supports generics now, unchecked-warnings doesn't need to be suppressed anymore
  • Maven project in Eclipse IDE: ignoring the maven-dependency-plugin in the
  • Eclipse lifecycle => no more error messages exclusion of Java WebStart (javaws.jar) dependency in BSAF, so Maven build now works for JDK 7 on Mac OS X
  • all Dialogs are now always placed centered relative to their parent windows (doesn't make sense to restore the previous position when the parent has been moved)
  • Bugfix for Mac OS X: all Dialogs were always placed in upper left corner now centered relative to their parents
  • Toolbars in Mac OS X:
  • all buttons are now displayed in OS X toolbar style
  • rollover effects in Calendar view are disabled
  • Ant script for Mac OS X App bundle creation (located in misc/appbundler)
  • New HiRes SportsTracker application icon, old LowRes icon looked ugly in larger toolbars or application switchers (mostly on Mac OS X, Windows 7)
  • SportsTracker icon is available in many sizes, it's needed for different window and dock sizes depending on the operating system and user settings (automatic scaling looks ugly)
  • Exercise file existence check after application startup. A warning dialog displays all exercises where the attached files can't be found.
  • Toolbars: no focus painted for buttons anymore, was strange behavior updated signature keys for Java Webstart installation (old keys will expire in 2013)

New in SportsTracker 5.3.0 (Aug 1, 2011)

  • It includes minor usability improvements and an important bugfix for users of GPX execise files.
  • The libraries have been updated and the build process has been improved. SportsTracker now also runs with the recently released Java 7.

New in SportsTracker 5.1.0 (Aug 30, 2010)

  • SportsTracker changes:
  • updated to SwingX 1.6.1 (DatePicker improvements)
  • ExerciseViewer changes:
  • Garmin FIT Parser (support for Garmin FIT activity files):
  • full support for all data which can be shown in ExerciseViewer
  • (summary, lap data, sample data, track/map data, temperature data)
  • unit tests for GarminFITParser
  • ConvertUtils: new conversion method from semicircles to degrees
  • Lap class extension: atty for geographical position at lap split
  • parsed and stored in the Garmin FIT and TCX parser
  • TrackPanel: draw "S" next to start and "E" next to end waypoint
  • TrackPanel: draw white waypoint circles for each lap split position
  • TrackPanel: draw lap number next to each lap split waypoint
  • TrackPanel: waypoint circles and their texts have a dark border,
  • so they are also visible on backgrounds with same color.

New in SportsTracker 5.0.0 (Jul 13, 2010)

  • General changes:
  • CHANGE TO MAVEN BUILD SYSTEM (not Ant-based anymore)
  • Maven multi project: split into modules for strict separation,
  • wrong module dependencies are not possible anymore
  • Current Maven modules:
  • sportstracker:
  • Main application component.
  • st-exerciseviewer:
  • Component for parsing and displaying HRM exercise files (was named
  • PolarViewer before, but support now many other devices too)
  • st-util:
  • Component with common util classes for calculation, UI and more
  • st-parent:
  • Parent component with common plugin configuration and dependencies
  • Dependency Jars are not part of the source archive anymore, they
  • will be downloaded automatically in the build process
  • Setup of a Maven repository at http://saring.de/st-maven-repo/ for BSAF
  • and current JFreeChart (they are missing in Maven central repository)
  • GMaven plugin in build process:
  • Groovy classes can be used in all modules, also for tests
  • Groovy classes are now stored in own groovy source directories
  • Groovy and Java code can have circular dependencies
  • Groovy tests are executed automatically in test phase
  • (AllGroovyTest wrapper class not needed anymore)
  • documentation of Maven usage in README.txt
  • CHANGE TO MERCURIAL DISTRIBUTED VERSION CONTROL SYSTEM
  • the initial Mercurial repository contains the latest SVN trunk
  • (version 4.2.1)
  • the SVN history was not imported to Mercurial repository (would be
  • too much revisions, also from Mono/.NET past)
  • => start with a lean repository
  • the SVN repository will stay online at SourceForge for accessing all
  • history revisions
  • future commits will go all to Mercurial repository, not to SVN anymore
  • SCM documentation in README.txt
  • SportsTracker changes:
  • All dialogs can now be closed by pressing the Escape key
  • PolarPersonalTrainer-Importer (command line utility in misc-directory),
  • contributed by Philippe Marzouk
  • users of PolarPersonalTrainer.com can import the exercises of export
  • files (extension .ped) into the SportsTracker exercises.xml database
  • Ant script for signing JAR files for Java WebStart (located in
  • sportstracker/misc/webstart/build.xml)
  • PolarViewer/ExcerciseViewer changes:
  • PolarViewer has been renamed to ExerciseViewer, because it supports much more
  • heart rate monitor manufacturers than Polar (was the case at beginning)
  • changed package name de.saring.polarviewer to de.saring.exerciseviewer
  • all PolarViewer resource keys and texts/translation has been renamed
  • rename in all documentations (also in source code)
  • all PV* classes has been renamed to EV* (e.g. PVDocument -> EVDocument)
  • PolarPedParser, contributed by Philippe Marzouk :
  • ExerciseParser for export files (.ped extension) from PolarPersonalTrainer.com
  • (imports basic exercise data, no laps and sample data)
  • Exercise samples with dynamic timestamps (needed for support of many
  • heratrate monitors, e.g. for Garmin TCX exercises):
  • new atty ExerciseSample.timestamp
  • => offset in 1/1000 sec from Exercise start
  • ExerciseSample.timestamp is set in all ExerciseParser implementations
  • Sample and Diagram panel are using the ExerciseSample.timestamp for
  • displaying sample data
  • Garmin TCX Parser:
  • support for parsing lap (Lap) and sample (Trackpoint) data, including
  • unit tests (parses the speed, distance, altitude and cadence)
  • added some cadence test data to Edge705-Running-Heartrate-2Laps.tcx
  • (doesn't make sense for running exercises, but test data is needed)
  • parses and stores the GPS location data (incl. checks in unit tests)
  • Track Panel for displaying the track of the exercise inside a map:
  • new class Position class stores the GPS location data,
  • is an optional atty in ExerciseSample
  • new flag EVExercise.RecordMode.location, it's true when GPS data
  • is available
  • new class TrackPanel (named "Track"), it displays the track in a map
  • component (JXMapKit from SwingX-WS with OpenStreetMap backend)
  • TrackPanel displays a label for missing data if there's no track data
  • track/map feature documentation in README.txt
  • Timex PWX exercise file support
  • contributed by Robert Schultz
  • tested with Timex Ironman Race Trainer, could work with others too
  • implementation of TimexPwxParser, unit tests and example files
  • (initial release, does not parse all available data yet)

New in SportsTracker 4.2.0 (May 12, 2010)

  • SportsTracker changes:
  • Eclipse project update to Eclipse 3.5 and Groovy-Eclipse 2.0.0
  • => much better Groovy integration, all parsers and tests are now
  • running within the IDE)
  • Groovy updated to 1.7.0
  • fixed all Eclipse 3.5 compiler warnings
  • Overview Dialog:
  • Diagram type "last 12 months":
  • display current month and 12 months before (in total 13 months)
  • (good for compare current month and the one from year before)
  • show only month names on bottom axis (year not required, space
  • is not sufficient)
  • fixed all deprecated JFreeChart usages (also in PolarViewer)
  • new tool: sportstracker-importer 0.5 (added to 'misc' directory)
  • done for importing all your Polar HRM files at once
  • created by Jiri Polcar
  • MacOS X support improvements and bugfixes, contributed by Mathias Obst
  • the name of the application is set in the application menu bar
  • all SportsTracker menus appear in the global applications menu panel
  • the SportsTracker logo is set as application dock icon
  • the SportsTracker info box is accessible by application menu About item
  • the SportsTracker preferences are accessible by application menu
  • Preferences item
  • Accelerators (shortcuts) use Cmd key mask
  • Bugfix: if SportsTracker is exited by application menu Quit item or
  • Cmd+Q accelerator, data changes will be saved or asked to save
  • PolarViewer changes:
  • Garmin TCX exercise file support (initial version)
  • (feature requests #1511988 and #1687728)
  • parser implementation, unit tests and test files
  • PolarViewer now displays TCX files
  • SportsTracker now imports exercise data from TCX files

New in SportsTracker 4.1.1 (Mar 8, 2010)

  • contains bugfixes, translation and library updates.

New in SportsTracker 4.0.0 (Mar 10, 2009)

  • The biggest change is the support for new entry types. Note entries can be entered for e.g. events or training plans. Weight entries can be used for tracking the body weight history (also in the Overview diagram). The calendar shows entries of all types now, but there are also special list views for each entry type. All entries in the calendar are now selectable, so there are no more problems with multiple entries for one day. PolarViewer can now display HRM files of Polar CS600 devices. Remco den Breeje has added support for Polar S510 RAW files (could work for S410 and S520 too), the SonicRead tool can be used for downloading the exercise files. Internal refactorings have been done for the entry collection types, the XML storage, the calendar and the diagrams. Unit teats now cover more functionality. Most of the translations (german, french, polish, spanish, basque and czech) have been updated too. The full list of changes and bugfixes can be viewed in the file CHANGES.txt.

New in SportsTracker 3.6.0 (Dec 23, 2008)

  • The biggest improvement is drag & drop support of recorded exercise files to the calendar view - the import of recorded data is done much faster now.
  • The calendar now displays exercise tooltips with further informations.
  • All diagrams scale correctly and use proper system fonts.
  • Full builds (Ant) can also be done without the NetBeans IDE.
  • The czech and french translation have been updated.

New in SportsTracker 3.5.0 (Dec 5, 2008)

  • The application structure has been redesigned, dependency injection is done by Guice now. So there are much less dependencies and all components are testable now. SportsTracker can finally print both the calendar and list view. The user can specify the data directory, so SportsTracker can be installed on USB sticks and used on any available computer with a Java runtime.

New in SportsTracker 3.3.0 (Mar 22, 2008)

  • The major PolarViewer changes are support for Polar F6 monitors (thanks to Roland Hostettler) and for percentual heartrate ranges. Internal SportsTracker refactorings have reduced the source code and improved the performance and memory usage. A new polish translation has been contributed by Zbigniew Ogledzki. This release also contains many bugfixes and usability improvements.