mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-16 02:38:44 +00:00
1363 lines
51 KiB
Plaintext
1363 lines
51 KiB
Plaintext
********************************************
|
|
TracAPI
|
|
********************************************
|
|
|
|
1) Content
|
|
|
|
This zip package contains 3 folders:
|
|
|
|
- lib -> contains the Trac-API compiled library
|
|
- src -> contains the source code of the API and some code examples
|
|
- javadoc -> contains the JavaDoc
|
|
|
|
It contains also some files:
|
|
|
|
- test.sh -> script that compiles the code in the src folder, creates the test.jar library and execute the code of the example.
|
|
- Manifest.txt -> manifest used to create the test.jar file
|
|
|
|
********************************************
|
|
TracAPI 3.15.6
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 17/04/2024
|
|
|
|
1) Bugs
|
|
|
|
- There are some threads that are not killed when the connection is closed. These threads were added to collect
|
|
statistics but this feature make not sense in TracAPI. (Reported by Axel Uhl, 17/04/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.5
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 17/04/2024
|
|
|
|
1) Bugs
|
|
|
|
- Deadlock when a connection was closed by the server and the client called the IRaceSubscriber.stop method. (Reported by
|
|
Axel Uhl, 16/04/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.4
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 16/04/2024
|
|
|
|
1) Features
|
|
|
|
- Formatting the code using blank spaces (instead of tabs). The workspace was already configured like this,
|
|
but the old files kept some tabs. All the code has been formatted again. (Requested by Axel Uhl, 19/02/2024)
|
|
|
|
2) Bugs
|
|
|
|
- When the IRaceSubscriber.stop method is called, the library doesn't close the connection. (Reported by Axel Uhl, 03/04/2024)
|
|
- Improving the detection of a dead connection. (Reported by Axel Uhl, 03/04/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.3
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 11/03/2024
|
|
|
|
1) Feature
|
|
|
|
- Adding the method IPosition.getRTKStatus used to get the RTK status (Requested by Chris Terkelsen, 07/03/2024)
|
|
|
|
2) Bugs
|
|
|
|
- Some socket connections were not closed correctly (Reported by Jorge Piera, 08/03/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.2
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 20/02/2024
|
|
|
|
1) Feature
|
|
|
|
- Removing the usage of the IMetricsService (Requested by Axel Uhl, 19/02/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.1
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 19/02/2024
|
|
|
|
1) Feature
|
|
|
|
- Adding a setter to register an implementation for the IClientSocketFactory (Requested by Axel Uhl, 19/02/2024)
|
|
|
|
********************************************
|
|
TracAPI 3.15.0
|
|
********************************************
|
|
This is a final version. It adds some changes in the protocol used to exchange live data. It will be necessary to use
|
|
this version to receive live data from the 19/02/2024. It also changes the signatures of some interfaces, breaking
|
|
the backward compatibility. These interfaces are:
|
|
|
|
- Removing the method IControlPassingsListener.gotControlPassings(IRaceCompetitor,IControlPassings). This method is not called by the
|
|
implementation. The classes that implement this interface have to update their implementations removing this method. There is
|
|
another method with the same name that includes timestamp.
|
|
- Updating the methods of the IPositionFactory. This factory should be used only internally so the thirds party apps should
|
|
not be affected
|
|
|
|
Release date: 19/02/2024
|
|
|
|
1) Features
|
|
- The IPosition has a new method to get the true heading (getTrueHeading) (Requested by Radek Masnica, 2023)
|
|
- Adding two new entry statuses: STP and SCP (Requested by Radek Masnica, 2023)
|
|
|
|
2) Bugs
|
|
- Updating the protocol to send/receive messages between the dataserver and the library.
|
|
- Fixing a bug when the route is updated and it has not metadata attached (reported by Jorge Piera, 11/11/2023)
|
|
|
|
********************************************
|
|
TracAPI 3.14.2
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 25/07/2021
|
|
Build number:
|
|
|
|
1) Bug
|
|
|
|
- Catching the exceptions when TracAPI executes the callbacks. Otherwise, an exception
|
|
in the consumer application could finalize a TracAPI thread. (Requested by Axel Uhl, 25/07/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.14.1
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 22/06/2021
|
|
Build number:
|
|
|
|
1) Features
|
|
|
|
- Adding the methods IRaceCompetitor.getStatusLastChangedTime and IRace.getStatusLastChangedTime to retrieve
|
|
the time when the status was changed the last time (Requested by Axel Uhl, 18/06/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.14.0
|
|
********************************************
|
|
This is a final version. It changes the signatures of some listeners, breaking the backward compatibility:
|
|
|
|
Some of the interfaces used to receive data have been updated adding a parameter "long timestamp" that contains the value
|
|
of the time when the message was generated by the server. These interfaces are:
|
|
|
|
- IControlPassingsListener
|
|
- IControlsListener
|
|
- ICompetitorsListener
|
|
- IRaceCompetitorListener
|
|
- IRacesListener
|
|
|
|
The classes that implement any of these interfaces have to update their implementations adding this new parameter to their methods.
|
|
|
|
Release date: 15/06/2021
|
|
Build number:
|
|
|
|
1) Features
|
|
|
|
- Adding the parameter timestamp to some interfaces. NOTE: IRaceObject has a method getStatusTime that means the
|
|
time stamp when the competitor changed its status (e.g: the time stamp when the competitor got the black flag). This
|
|
value can be empty for some statuses like DNC, DNS, DNF, etc. (Requested by Axel Uhl, 02/06/2021)
|
|
|
|
2) Bugs
|
|
|
|
- The event live delay is always propagated to the clients when there is a change in the race
|
|
(Reported by Axel Uhl, 02/06/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.13.10
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 02/06/2021
|
|
Build number:
|
|
|
|
1) Bugs
|
|
|
|
- ConcurrentModificationException: the callbacks used by the IRacesListener, ICompetitorsListener and the
|
|
IRaceObjectsListener are not thread-safe (Reported by Axel Uhl, 01/06/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.13.9
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 01/06/2021
|
|
Build number:
|
|
|
|
1) Bugs
|
|
|
|
Compiled using a wrong version of Java
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.13.8
|
|
********************************************
|
|
This is a final version. It keeps the backward compatibility.
|
|
|
|
Release date: 01/06/2021
|
|
Build number:
|
|
|
|
1) Bugs
|
|
|
|
- The UPDATE RACE messages are always sent (Requested by Jorge Piera, 01/06/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.13.7
|
|
********************************************
|
|
This is a final version. It adds two new values to the RaceCompetitorStatusType
|
|
|
|
Release date: 02/03/2021
|
|
Build number: 2d21ce3085f8a4c915fc9d81b09d1c0518e349c4
|
|
|
|
1) Bugs
|
|
|
|
- Adding NSC and TLE to the RaceCompetitorStatusType (Requested by Radek Maskina, 26/02/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.13.6
|
|
********************************************
|
|
This is a final version. It fixes a bug. It keeps the backward compatibility.
|
|
|
|
Release date: 11/01/2021
|
|
Build number: 73b39ce774c7ee4d372ac6afd4c9302227b26229
|
|
|
|
1) Bugs
|
|
|
|
- ConcurrentModificationException sending a notification to the app (Reported by Axel Uhl, 08/01/2021)
|
|
|
|
********************************************
|
|
TracAPI 3.13.5
|
|
********************************************
|
|
This is a final version. It fixes a bug. It keeps the backward compatibility.
|
|
|
|
Release date: 02/12/2020
|
|
Build number: a589499d3cbc6c517faf088b95c8164d706fdab7
|
|
|
|
1) Bugs
|
|
|
|
- NullPointerExcpetion creating an IRace if the parameters file has not been successfully loaded
|
|
(Reported by Axel Uhl, 01/08/2020)
|
|
|
|
********************************************
|
|
TracAPI 3.13.4
|
|
********************************************
|
|
This is a final version. It fixes a bug. It keeps the backward compatibility.
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 17/08/2020
|
|
Build number: 3949342626e65a5d7f19bcc21ebd5146e2b3fdac
|
|
|
|
1) Bugs
|
|
|
|
- If a race is not initialized and the race start time is edited, the library invokes
|
|
the method IRacesListener.abandonRace (Reported by Axel Uhl, 15/08/2020)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.13.3
|
|
********************************************
|
|
This is a final version. The only difference with the previous version is the JDK used to compile the sources.
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 01/05/2020
|
|
Build number: dfa0d7732ebb374236628868810547d28a357f92
|
|
|
|
1) Bugs
|
|
|
|
- The previous version was compiled using Java 13 (Reported by Axel Uhl, 01/05/2020)
|
|
|
|
********************************************
|
|
TracAPI 3.13.2
|
|
********************************************
|
|
This is a final version. It adds fixes some features. It keeps the backward compatibility.
|
|
|
|
Release date: 30/04/2020
|
|
Build number: 242936347afa7ec28fc8b61996caf92693ab11af
|
|
|
|
1) Bugs
|
|
|
|
- Checking if a control exists before to add it to the route (Reported by Axel Uhl, 24/03/2020)
|
|
- The EventFactory has to synchronize the access to the "Map of IControls" (Reported by Axel Uhl, 30/04/2020)
|
|
|
|
********************************************
|
|
TracAPI 3.13.1
|
|
********************************************
|
|
This is a final version. It adds a some features. It keeps the backward compatibility.
|
|
|
|
Release date: 25/02/2020
|
|
Build number: d2f214ace35bbbadea56f24c834960dbaef78857
|
|
|
|
1) Features
|
|
|
|
- Adding the method IRace.getStatusTime() to get the time stamp when the race status
|
|
was changed last time (Requested by Axel Uhl, 24/02/2020)
|
|
|
|
********************************************
|
|
TracAPI 3.13.0
|
|
********************************************
|
|
This is a final version. It changes the enumerate RaceStatusType, breaking the backward compatibility:
|
|
|
|
- RaceStatusType.FINAL is renamed to RaceStatusType.OFFICIAL
|
|
- RaceStatusType.FINISHED is renamed to RaceStatusType.UNOFFICIAL
|
|
|
|
Release date: 15/01/2019
|
|
Build number: 41b9774f520978e2bc4596d82da891c5c77d8da8
|
|
|
|
********************************************
|
|
TracAPI 3.12.5
|
|
********************************************
|
|
This is a final version. It adds a some features. It keeps the backward compatibility.
|
|
|
|
Release date: 21/11/2019
|
|
Build number: 27eb535e
|
|
|
|
1) Features
|
|
|
|
- If the sport is Orienteering/Route sport the API wont't retrieve the control positions from the server (Requested
|
|
by Jorge Piera, 29/07/2019)
|
|
- If the start time type is Individual and the competitor has start time, the API discards the positions two minutes
|
|
before the start (Requested by Jorge Piera, 29/07/2019)
|
|
- Adding the method IEvent.getWebURL (Requested by Axel Uhl, 20/11/2019)
|
|
|
|
********************************************
|
|
TracAPI 3.12.4
|
|
********************************************
|
|
This is a final version. It fixes some bugs. It keeps the backward compatibility.
|
|
|
|
|
|
Release date: 19/07/2019
|
|
Build number: 0579368
|
|
|
|
1) Bugs
|
|
|
|
- The IRaceCompetitor.getMetadata() was not updated in live (Reported by Jorge Piera, 13/07/2019)
|
|
- The IEventSubscriber.start() can throw a NullPointerException when it is created from an
|
|
MTB file (Reported by Alex Uhl, 16/07/2019)
|
|
|
|
********************************************
|
|
TracAPI 3.12.3
|
|
********************************************
|
|
This is a final version. It adds a some features. It keeps the backward compatibility.
|
|
|
|
|
|
Release date: 30/05/2019
|
|
Build number: 7a3b63b1
|
|
|
|
1) Features
|
|
|
|
- Adding the methods IRaceCompetitor.getOfficialRank() and IRaceCompetitor.getOfficialFinishTime()
|
|
(Requested by Martin Frosch, 29/05/2019)
|
|
|
|
2)
|
|
|
|
********************************************
|
|
TracAPI 3.12.2
|
|
********************************************
|
|
This is a final version. It adds a some features. It keeps the backward compatibility.
|
|
|
|
|
|
Release date: 29/05/2019
|
|
Build number: e939148b
|
|
|
|
1) Features
|
|
|
|
- Adding some extra values to the RaceCompetitorStatusType (Requested by Martin Frosch,
|
|
28/05/2019)
|
|
|
|
2) Bugs
|
|
|
|
********************************************
|
|
TracAPI 3.12.1
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
It keeps the backward compatibility.
|
|
|
|
It keeps the backward compatibility:
|
|
|
|
Release date: 10/05/2019
|
|
Build number: c547c9b
|
|
|
|
1) Features
|
|
|
|
- When a race is loaded from a file, the percentage of loaded data was inaccurate
|
|
and to fix this issue the MTB reader has been reimplemented. Now the reading time
|
|
is faster (Requested by Andr? Borud, 07/05/2019)
|
|
|
|
2) Bugs
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.12.0
|
|
********************************************
|
|
This is a final version. It changes the enumerate RaceStatusType,
|
|
breaking the backward compatibility:
|
|
|
|
- The new RaceStatusTypes requested by Swiss Timing are:
|
|
- NONE (NONE)
|
|
- START (STR_SEQ)
|
|
- RACING (RAC)
|
|
- FINISHED (FSHD)
|
|
- ABANDONED (ABDN)
|
|
- FINAL (FINAL)
|
|
- GENERAL_RECALL (GNR_REC)
|
|
- POSTPONED (PSP)
|
|
- TracAPI establishes equivalences with the old and the new statuses:
|
|
- PENDING -> NONE
|
|
- START_PHASE -> START
|
|
- RUNNING -> RACING
|
|
- CANCELLED -> ABANDONED
|
|
- UNSCHEDULED -> NONE
|
|
- PRESCHEDULED -> NONE
|
|
- SCHEDULED -> NONE
|
|
- FINISHING -> RACING
|
|
|
|
Release date: 27/03/2019
|
|
Build number: f52717c06bb047a747030e3ea450e15b609edf73
|
|
|
|
1) Features
|
|
|
|
- Updating the list of race statuses (Requested by Radek Masnika, 01/03/2019)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.11.1
|
|
********************************************
|
|
This is a final version.It fixes bugs in the implementation.
|
|
It keeps the backward compatibility:
|
|
|
|
Release date: 19/10/2018
|
|
Build number: 6c0010208212c2aad1016bd69708bc6859e371e9
|
|
|
|
1) Bugs
|
|
|
|
- Validating null values for the methods of the IRaceSubscriber that accept an array of
|
|
Classes (Reported by Andre Borud, 05/09/2018)
|
|
- The IEventSubscriber is not able to connect to the server if the IEvent has been created
|
|
using the IEventFactory.createEvent(URL) method and the URL uses HTTPs. It only works using HTTP
|
|
(Reported by Thomas Scott, 19/10/2018)
|
|
|
|
********************************************
|
|
TracAPI 3.11.0
|
|
********************************************
|
|
This is a final version. It changes the implementation of the IRaceSubscriber interface,
|
|
breaking the backward compatibility:
|
|
|
|
- The methods IRaceSubscriber.subscribeRoutes() and IRaceSubscriber.unsubscribeRoutes()
|
|
have been removed.
|
|
- The IRoutesListener has been removed.
|
|
- The IControlRouteChangeListener has been extended adding a new method to get updates
|
|
of a IPathRoute. If you are managing "sailing events" this method will never be invoked.
|
|
- When any of the attributes of the route is updated, will be notified using the
|
|
IRaceSubscriber.subscribeRouteChanges(IControlRouteChangeListener) method
|
|
|
|
Release date: 30/07/2018
|
|
Build number: 416b827959b696583cce509ac39b7fd64aaefe9b
|
|
|
|
1) Features
|
|
|
|
- Merging the subscriptions IRaceSubscriber.subscribeRouteChanges and IRaceSubscriber.subscribeRoutes
|
|
in the same method (Requested by Axel Uhl, 23/07/2018)
|
|
|
|
2) Bugs
|
|
|
|
- When the client is offline, if it tries to load a race it gets a RaceLoadingException. But then,
|
|
when the client is online again, it can't reuse the same race because it is in an internal wrong
|
|
status (Reported by Thomas Scott, 19/06/2018)
|
|
|
|
********************************************
|
|
TracAPI 3.10.1
|
|
********************************************
|
|
This is a final version.It fixes bugs in the implementation and it adds a some features.
|
|
It keeps the backward compatibility:
|
|
|
|
Release date: 28/06/2018
|
|
Build number: 35a26e503339fff26fe984617e5190a18438e10b
|
|
|
|
1) Features
|
|
|
|
- Adding a method to retrieve positions by class id (Requested by Chris Terkelsen, 07/05/2018)
|
|
|
|
2) Bugs
|
|
|
|
- When the client is offline, if it tries to load a race it gets a RaceLoadingException. But then,
|
|
when the client is online again, it can't reuse the same race because it is in an internal wrong
|
|
status (Reported by Thomas Scott, 19/06/2018)
|
|
- The live delay is not propagated (sometimes). This feature has been reimplemented and now the
|
|
value is attached and sent with the race object using the same approach used to transmit the race
|
|
start time or the tracking start time (Reported by Axel Uhl, 19/06/2018)
|
|
|
|
********************************************
|
|
TracAPI 3.10.0
|
|
********************************************
|
|
This is a final version. It changes the implementation of the ISensorData interface, breaking the
|
|
backward compatibility:
|
|
|
|
Release date: 02/03/2018
|
|
Build number: a0cbb8116ab0917334b9b323db6664671a05f79b
|
|
|
|
1) Features
|
|
|
|
- Updating the interface ISensorData (Requested by Axel Uhl, 01/03/2018)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.9.0
|
|
********************************************
|
|
This is a final version. It changes the implementation of the ISensorData interface, breaking the
|
|
backward compatibility:
|
|
|
|
Release date: 01/03/2018
|
|
Build number: 8fdd19ee81b3ccbfc2694963e8e398346eebde7a
|
|
|
|
1) Features
|
|
|
|
- Updating the interface ISensorData (Requested by Axel Uhl and Jakob Odum, 22/11/2017)
|
|
- Support for https downloading MTBs (Requested by Axel Uhl, 07/01/2018)
|
|
|
|
********************************************
|
|
TracAPI 3.8.0
|
|
********************************************
|
|
This is a final version. It change the signature of a method, breaking the
|
|
backward compatibility:
|
|
|
|
- com.tractrac.model.lib.api.event.RaceStatusType enum. UNKNOWN value of this enum type has been renamed to PENDING.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 22/11/2017
|
|
Build number: 14453
|
|
|
|
1) Features
|
|
|
|
- com.tractrac.model.lib.api.event.RaceStatusType enum. UNKNOWN value of this enum type has been renamed to PENDING.
|
|
(Requested by Chris Terkelsen 24/10/2017)
|
|
- Support for sensor data. IRaceSubscriber has been updated adding methods to retrieve sensor data (Requested by SAP)
|
|
- When the tracking of a race is initialized, TracAPI also sends the positions of the controls using the tracking start time
|
|
as timestamp (Requested by Axel Uhl, 14/11/2017)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.7.7
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 29/10/2017
|
|
Build number: 14453
|
|
|
|
1) Bugs
|
|
|
|
- Selector.wakeup() throws an IOException in Android 5. It seems a bug on this platform
|
|
(Reported by Andr? Borud, 30/08/2017)
|
|
- There is a synchronization bug on the implementation of the IAttachable interface
|
|
(Reported by Axel Uhl, 29/10/2017)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.7.6
|
|
********************************************
|
|
This is a final version.It fixes bugs in the implementation and it adds a some features.
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 14/08/2017
|
|
Build number: 14241
|
|
|
|
1) Features
|
|
|
|
- Two new RaceCompetitorStatusType values have been added: 8 (Did not finish) and 9 (Missing data). (Requested by
|
|
Chris Terkelsen, 28/07/2017)
|
|
|
|
2) Bugs
|
|
|
|
- Releasing the memory when the ISubscriber.close method is called (Reported by Axel Uhl, 04/08/2017)
|
|
- The live messages (e.g: race start time updated, live delay updated...) are not arriving sometimes,
|
|
despite of the server is sending them all the time. The implementation of this part has been
|
|
downgraded to the version used in TracAPI 3.6.x (Reported by SAP)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.7.5
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 25/07/2017
|
|
Build number: 14214
|
|
|
|
1) Bugs
|
|
|
|
- When the library calls the IRaceStartStopTimesChangeListener methods,
|
|
the IRace object can be not updated (Reported By Axel Uhl, 25/07/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.7.4
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 25/07/2017
|
|
Build number: 14207
|
|
|
|
1) Bugs
|
|
|
|
- It is not possible to connect a second time to the ISubscriber object to receive
|
|
live notifications if it has been closed before (Reported By Axel Uhl, 24/07/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.7.3
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 24/07/2017
|
|
Build number: 14195
|
|
|
|
1) Bugs
|
|
|
|
- When the specific live delay is updated, the EM sends a message with the new and the
|
|
old values to the clients. TracAPI checks if the cached value is equals to the old value and
|
|
only in this case, it updates the live delay. If the server sends some wrong values or if a message
|
|
is lost, the live delay will never be updated and for this reason this validation has been
|
|
removed (Reported By Axel Uhl, 24/07/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.7.2
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 21/07/2017
|
|
Build number: 14174
|
|
|
|
1) Bugs
|
|
|
|
- IRace.getCourseArea() is not updated when the race is loaded a second time (Reported By Axel Uhl, 21/07/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.7.1
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
It keeps the backward compatibility.
|
|
|
|
Release date: 21/07/2017
|
|
Build number: 14172
|
|
|
|
1) Features
|
|
|
|
- RaceStatusType includes a new value: 9 - Final. The meaning of this value is that the related race has finished and the
|
|
splits have been validated (Requested by Chris Terkelsen, 18/07/2017).
|
|
|
|
2) Bugs
|
|
|
|
- NullPointerException when the client stops the subscription during the loading progress (it happens sometimes).
|
|
The data provider is set to null and one of the threads that sends the positions to the app can use it (Reported
|
|
By Andr? Borud, 03/07/2017)
|
|
- IRace.getEvent() is null when the race is updated (Reported By Axel Uhl, 21/07/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.7.0
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API keeping the backward compatibility with the releases
|
|
3.6.x. The minor version has been increased from 6 to 7 because there are some important
|
|
changes in the implementation.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 28/07/2017
|
|
Build number: 14122
|
|
|
|
1) Features
|
|
|
|
- RaceCompetitorStatusType: New race competitor status type defined: F_CONFIRMED. Represents a competitor with a
|
|
control passing registered for the last gate/mark that is accepted as the official result (Requested by Ugo
|
|
Alvazzi, 26/04/2017)
|
|
- WebSockets support: instead of using a TCP connection is possible to retrieve data using WebSockets (using the
|
|
same protocol used by the HTML Viewer). The protocol is not fully implemented and it only has to be used for testing
|
|
(Requested by Jorge Piera, 30/04/2017).
|
|
- Use an asynchronous API: the dataserver implementation has been migrated to an asynchronous API that provides
|
|
a better performance downloading replay data (the tests show that is 2.5 times faster). TracAPI has also adopted
|
|
this new asynchronous interface but at this moment it continues using the synchronous approach (Requested by Jorge
|
|
Piera, 03/05/2017)
|
|
- Adding the method ISubscriberFactory.clean to release the objects in memory (Requested by Andr? Borud, 01/06/2017)
|
|
- Adding the method IPosition.isGPSTiming to know is the time of a position has been retrieved from a physical
|
|
GPS device (Requested by J?rome Soussens, 21/06/2017)
|
|
|
|
2) Bugs
|
|
|
|
- When a static control is updated, the IControlPointPositionListener.gotControlPointPosition event
|
|
is not called if the consumer application is not registered to the IEventSubscriber (Reported by
|
|
Axel Uhl, 18/06/2017)
|
|
- The live delay sometimes is not propagated. The server always propagates the event but TracAPI can
|
|
filter it if the IEventSubscriber is not being used or if it has not been correctly initialized
|
|
using the right live-uri (Reported by Julian Mayland, 21/06/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.6.3
|
|
********************************************
|
|
This is a final version. It adds support for these new features:
|
|
|
|
- IMetadataContainer: Fixed bug in IMetadataContainer implementation. Metadata received through serialized objects was not being parsed.
|
|
|
|
Release date: 10/04/2017
|
|
Build number: -
|
|
|
|
********************************************
|
|
TracAPI 3.6.2
|
|
********************************************
|
|
This is a final version. It adds support for these new features:
|
|
|
|
- IControlPoint.getId() will return null when the control point is part of a line and the related IControl do not have
|
|
the properties P1.UUID/P2.UUID defined.
|
|
|
|
Release date: 06/04/2017
|
|
Build number: -
|
|
|
|
********************************************
|
|
TracAPI 3.6.1
|
|
********************************************
|
|
This is a final version. It adds support for these new features:
|
|
|
|
- IControl and IRace now have a method getCourseArea() that returns the course area.
|
|
- IControlPoint has a getId method that returns the UUID. It will be initialized with the value set in the P1.UUID and
|
|
P2.UUID properties defined in the parent IControl. In case these properties are not defined the UUID will fallback to
|
|
the parent IControl UUID.
|
|
|
|
Release date: 04/04/2017
|
|
Build number: 13554
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
********************************************
|
|
TracAPI 3.6.0
|
|
********************************************
|
|
This is a final version. It change the signature of a couple of methods, breaking the
|
|
backward compatibility. These changes are:
|
|
|
|
- The IEventFactory.createRace(URI) doesn't throw the TimeOutException.
|
|
- The IEventFactory.createRace(URI, URI, URI) doesn't throw the TimeOutException.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 08/03/2017
|
|
Build number: 13498
|
|
|
|
1) Features
|
|
|
|
- Removing the TimeOutException of some methods of the IEventFactory (Requested by Axel Uhl, 08/03/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.5.0
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API breaking the backward compatibility. These changes are:
|
|
|
|
- The IRaceCompetitor interface changes the return type of the getStatusTime method
|
|
from Date to long.
|
|
- The methods IEventFactory.createRace throw now a TimeOutException when there is a timeout
|
|
downloading the parameters file.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 07/03/2017
|
|
Build number: 13490
|
|
|
|
1) Features
|
|
|
|
- Updating the return type of the IRaceCompetitor.getStatusTime from Date to long to
|
|
be consistent with the API (Requested by Jorge Piera, 13/02/2017)
|
|
- Adding the methods ISegment.getExtent(), the IRoute.getExtent() and IRace.getExtent()
|
|
that return the extent of the object (Requested by Jorge Piera, 23/02/2017)
|
|
- Adding an extra parameter to the IEventFactory.createRace methods to indicate
|
|
the timeout used to download the parameters file. The IEventFactory also includes a method
|
|
getDefaultTimeOut that returns the default timeout (Requested by Axel Uhl, 06/03/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.4.1
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 20/02/2017
|
|
Build number: 13415
|
|
|
|
1) Bugs
|
|
|
|
- TracAPI doesn't send all data when the races are retrieved in parallel.
|
|
It is an error in the thread that executes the callback messages that in some
|
|
internal circumstances, doesn't execute the callback (Reported by Axel Uhl,
|
|
13/02/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.4.0
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API breaking the backward compatibility. These changes are:
|
|
|
|
- The IRacesListener interface implements a new method dataSourceChanged. If
|
|
your app implements this interface, you have to implement this extra method.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 31/01/2017
|
|
Build number: 13339
|
|
|
|
1) Features
|
|
|
|
- Adding the method IRace.getDataSource that returns the datasource used by the race
|
|
to load data (Requested by Axel Uhl, 25/01/2017)
|
|
- Adding the method IRacesListener.dataSourceChanged that sends a notification
|
|
every time that the datasource of a race changes (Requested by Axel Uhl, 25/01/2017)
|
|
|
|
2) Bugs
|
|
|
|
- Call IRaceSubscriber.unsubscribePositions() after IRaceSubscriber.start() generates a NullPointerException
|
|
(Reported by Jerome Soussens, 24/01/2017)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.3.1
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 17/01/2017
|
|
Build number: 13262
|
|
|
|
1) Features
|
|
|
|
- When a race is in live, the library starts to download stored data from the time when the library connects
|
|
allowing to the user show data as fast as the first data stream arrives. Then, the library starts to download
|
|
the rest of the old data. (Requested by Jakob Odum, 25/09/2016)
|
|
- Adding the method IEventFactory.deleteCache that removes all the previous cached objects (Requested by Andre
|
|
Borud, 14/12/2016)
|
|
- Changing the synchronization of the UtilLocator.createParamerSet method. It was synchronized at method level
|
|
but it is only necessary to synchronize the initialization of the factory and not the usage (Requested by Axel Uhl,
|
|
17/01/2017)
|
|
|
|
2) Bugs
|
|
|
|
- The ICompetitorClass implementation can contain duplicate entries of different implementations. (Reported by
|
|
Juan Salvador P�rez, 16/01/2017)
|
|
|
|
********************************************
|
|
TracAPI 3.3.0
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API breaking the backward compatibility. These changes are:
|
|
|
|
Release date: 21/09/2016
|
|
Build number: 12935
|
|
|
|
1) Features
|
|
|
|
- Adding the method IRaceCompetitorListener.updateRaceCompetitor that is thrown when a race
|
|
competitor is updated (Requested by Jerome Soussens, 21/09/2016)
|
|
|
|
********************************************
|
|
TracAPI 3.2.2
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 21/09/2016
|
|
Build number: 12927
|
|
|
|
1) Features
|
|
|
|
- Adding the method ISubscriber.isRunning() to know if the thread created by the ISubscriber.start() method
|
|
is running or not (Requested by Jorge Piera, 04/08/2016).
|
|
|
|
- Added attribute in the IRaceCompetitor interface: statusTime. It will contain the time when an entry has changed
|
|
its status to abandoned/retired.
|
|
|
|
- Added new value to the RaceCompetitorStatusType enum: NO_COLLECT. This value means that the competitor didn't
|
|
collected the tracker.
|
|
|
|
2) Bugs
|
|
|
|
- When an static control is added (or updated), the timestamp has to be the event start time. At this moment
|
|
it is using the timestamp when whe control was created (Reported by Steffen Wagner, 12/09/2016)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.2.1
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 13/07/2016
|
|
Build number: 12627
|
|
|
|
1) Bugs:
|
|
|
|
- If the Internet connection goes down, some threads can be hung despite of
|
|
the consumer application calls the ISubscriber.stop method (Reported by
|
|
Axel Uhl, 13/07/2016)
|
|
|
|
********************************************
|
|
TracAPI 3.2.0
|
|
********************************************
|
|
This is a final version. New functionality added:
|
|
|
|
Release date: 05/06/2016
|
|
Build number: 12293
|
|
|
|
1) Features:
|
|
|
|
- IRace adds the new property, status, returning a value of the enum RaceStatusType.
|
|
|
|
- IRace property visibility has changed to return a value of the enum RaceVisibilityType.
|
|
|
|
- IRaceCompetitor adds a new property: status of type RaceCompetitorStatusType.
|
|
|
|
- Competitor updates during a race will be propagated to all subscriptors.
|
|
|
|
********************************************
|
|
TracAPI 3.1.6
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 22/02/2016
|
|
Build number: 11976
|
|
|
|
1) Bugs
|
|
|
|
- The bug of the previous release (3.1.2) was not fixed.
|
|
|
|
********************************************
|
|
TracAPI 3.1.5
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 17/02/2016
|
|
Build number: 11948
|
|
|
|
1) Bugs
|
|
|
|
- The bug of the previous release (3.1.2) was not fixed.
|
|
|
|
********************************************
|
|
TracAPI 3.1.4
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 15/02/2016
|
|
Build number: 11938
|
|
|
|
1) Bugs
|
|
|
|
- An infinity loop has been detected in the thread that sends the application
|
|
messages (Repored by Axel Uhl, 12/02/2016)
|
|
|
|
********************************************
|
|
TracAPI 3.1.3
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 25/01/2016
|
|
Build number: 11888
|
|
|
|
1) Bugs
|
|
|
|
- The bug of the previous release (3.1.2) was not fixed.
|
|
|
|
********************************************
|
|
TracAPI 3.1.2
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 21/01/2016
|
|
Build number: 11864
|
|
|
|
1) Bugs
|
|
|
|
- The ISubscriber.stop() method never finishes due to a deadlock (it happens sometimes).
|
|
There is a deadlock between one of the internal threads responsible to update the progress
|
|
and the thread that calls the stop method. The release 3.1.1 fixed a part of the bug but
|
|
it continues happening due to a new deadlock (Reported by Axel Uhl, 20/01/2016)
|
|
|
|
********************************************
|
|
TracAPI 3.1.1
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 18/01/2016
|
|
Build number: 11844
|
|
|
|
1) Bugs
|
|
|
|
- The ISubscriber.stop() method never finishes due to a deadlock (it happens sometimes).
|
|
There is a deadlock between one of the internal threads responsible to update the progress
|
|
and the thread that calls the stop method (Reported by Axel Uhl, 16/11/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.1.0
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds some new features.
|
|
These features add methods to the API breaking the backward compatibility. These changes are:
|
|
|
|
- The IRaceCompetitorListener interface implements a new method removeOffsetPositions. If
|
|
your app implements this interface, you have to implement this extra method.
|
|
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 11/12/2015
|
|
Build number: 11801
|
|
|
|
1) Features
|
|
|
|
- Adding the method IRaceCompetitorListener.removeOffsetPositions that is invoked
|
|
to invalidate a set of positions. It is used when the event administrator detects
|
|
an error in the snapping algorithm (in route sports) and he want to remove the wrong
|
|
positions (Requested by Chris Terkelsen, 26/11/2015)
|
|
|
|
- Adding the method IControl.getMapName() that contains the name that has to be used to
|
|
display the control on the map (Requested by Chris Terkelsen, 09/12/2015)
|
|
|
|
2) Bugs
|
|
|
|
- The static controls send a position event using the race start time instead the
|
|
event start time. (Reported by Jerome Soussens, 11/12/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.14
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 29/09/2015
|
|
Build number: 11514
|
|
|
|
1) Bugs
|
|
|
|
- NullPointerException caused by a synchronization error (Reported by J?rome Soussens, 28/09/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.13
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 23/09/2015
|
|
Build number: 11448
|
|
|
|
1) Features
|
|
|
|
- The script that generates the final version also includes a jar with the source code of the APIs
|
|
(Requested by Axel Uhl, 07/09/2015)
|
|
|
|
2) Bugs
|
|
|
|
- When a new race is updated, the IRace.getParamsURI() is updated to null. (Reported by Juan Salvador P?rez, 10/09/2015)
|
|
|
|
- The IRace.getMetadata(), ICompetitor.getMetadata and IControl.getMetadata() methods are not refreshed in
|
|
the model when the objects are updated in the event manager (Reported by Jorge Piera, 23/09/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.12
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 07/08/2015
|
|
Build number: 11130
|
|
|
|
1) Features
|
|
|
|
- Adding the method ISubscriberFactory.setUserId(userId) used to configure a valid user with permissions
|
|
to retrieve data from the TracTrac servers. (Requested by Jorge Piera, 18/06/2015)
|
|
|
|
2) Bugs
|
|
|
|
- If the consumer application is not subscribed to the events that manage the addition of new "objects"
|
|
in the system (e.g: add control, add competitor...), it is never going to receive the events related
|
|
with these "objects". It is an error of design in TracAPI because it has been designed "thinking"
|
|
that the consumer application is always subscribed to receive all the events. The solution is simple:
|
|
TracAPI is always going to subscribe to all the events to guarantee that the static model is always
|
|
updated and to guarantee that if the consumer application is subscribed to a type of event it is always
|
|
going to receive all the events of this type. There is a secondary effect: the consumer application can
|
|
receive events with new objects. (Reported by Axel Uhl, 20/07/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.11
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 27/05/2015
|
|
Build number: 10715
|
|
|
|
1) Features
|
|
|
|
- Adding the method IRace.setInitialized(boolean) that allows to load control point positions despite of
|
|
the race is not initialized (Requested by Jorge Piera, 17/05/2015)
|
|
|
|
1) Bugs
|
|
|
|
- The subscription library sends (per each control point) an "ControlPointPosition" event with the positions
|
|
of the parameters with a time stamp equals to the tracking start time. If the control point is static (it
|
|
doesn't have a tracker), it means that this control won't exist until the tracking start time arrives: it is
|
|
not possible to open a subscription connection before the tracking start time and see the control point. But
|
|
if the control is static, it has to exist during all the event. Now when a control is static, the subscription
|
|
library sends a "ControlPointPosition" event with the event start time and then it sends other "ControlPointPosition"
|
|
event with the tracking start time. It allows to connect with future races and see the static controls (Requested
|
|
by Jakob Odum, 25/02/2015)
|
|
|
|
- It is possible to add two or more subscriptions for the same subscriber (Reported by Jorge Piera, 02/05/2015)
|
|
|
|
- An initialized race is a race where the tracking is on. A not initialized race is a race where the tracking is off.
|
|
If a race is in a not initialized state and it is loaded using the parameters file, the library assumes that the
|
|
consumer application wants to load the race and it changes its initialized attribute to true (the tracking is on).
|
|
This assumption is wrong. Now, if a race is not initialized it will continue being uninitialized until the event
|
|
administrator changes its state to initialized.
|
|
When a race changes its state from not initialized to initialized, some events are thrown in the system:
|
|
1. IRaceStartStopTimesChangeListener.gotTrackingStartStopTime(IRace, IStartStopData): where the IStartStopData object contains the new tracking interval.
|
|
2. IRacesListener.startTracking(UUID): the UUID is the race identifier
|
|
3. IRacesListener.updateRace(IRace): IRace is the new updated race where the IRace.isInitialized is true and it has values for both the getTrackingStartTime and the getTrackingEndTime methods.
|
|
When a race changes its state from initialized to not initialized, the following events are thrown in the system:
|
|
1. IRaceStartStopTimesChangeListener.gotTrackingStartStopTime(IRace, IStartStopData): where the IStartStopData object contains the null interval ([0, 0])
|
|
2. IRacesListener.abandonRace(UUID): the UUID is the race identifier
|
|
3. IRacesListener.updateRace(IRace): IRace is the new updated race where the IRace.isInitialized is false and it has null values for both the getTrackingStartTime and the getTrackingEndTime methods.
|
|
(Reported by Axel Uhl, 17/05/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.10
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 17/02/2015
|
|
Build number: 9938
|
|
|
|
1) Bugs
|
|
|
|
- It fixes the same bug described in the release 3.0.9 that it was not fixed. The release 3.0.9 fixed
|
|
the synchronization issue between different threads but the ConcurrentModificationException happens
|
|
when the same thread is accessing to the list. The synchronization at method level doesn't work
|
|
in this case (Reported by Axel Uhl,07/02/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.9
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 13/02/2015
|
|
Build number: 9904
|
|
|
|
1) Bugs
|
|
|
|
- There is a ConcurrentModificationException in the IConnectionStatusListener subscription, when a thread
|
|
is adding subscriptions/unsubscriptions and other thread is sending events through this listener (Reported
|
|
by Axel Uhl,07/02/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.8
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 07/02/2015
|
|
Build number: 9826
|
|
|
|
1) New features
|
|
|
|
- Adding the method IEvent.getEventType that returns the type of the event (e.g: Sailing, Orienteering...).
|
|
(Requested by Jorge Piera, 01/02/2014)
|
|
|
|
2) Bugs
|
|
|
|
- The changes in the static fields of the route (including the metadata) were not propagated through
|
|
the subscription library. Following the same approach used for the races, controls and competitors,
|
|
a new listener IRoutesListener has been added to manage these changes. (Reported by Axel Uhl,
|
|
06/02/2015)
|
|
|
|
********************************************
|
|
TracAPI 3.0.7
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a some features.
|
|
These features add methods to the API, but they keep the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 19/11/2014
|
|
Build number: 9436
|
|
|
|
1) New features
|
|
|
|
- The IRace interface implements the method getStartTimeType that returns the type of start time. It is an enumerated
|
|
value with the values: Individual (if the competitors have an individual start time), RaceStart (if the race
|
|
has a race start time) and FirstControl (if the start of the race happens when the competitor passes for
|
|
the first control). The value by default is RaceStart. At this moment this value only can be managed at an event
|
|
level (in the event manager) but in a future we will add this functionality at a race level (Requested by
|
|
J�rome Soussens, 14/10/2014)
|
|
- The method IControlPoint.getPosition is deprecated. Use the IControlPointPositionListener.gotControlPointPosition()
|
|
to know the position of a control point (Reported by Jorge Piera, 28/10/2014)
|
|
- Adding the isNonCompeting() method to the ICompetitor interface. If a competitor is a non competing competitor
|
|
doesn't receive control passings attached to it. It only receives positions (Requested by J?rome Soussens, 15/10/2014 and
|
|
Axel Uhl, 22/10/2014)
|
|
|
|
2) Bugs
|
|
|
|
- It checks that the system of messages doesn't generates a BufferOverflow exception. We added a bug on the server
|
|
sending wrong strings to the clients and this error thrown an exception on the clients that killed one of threads.
|
|
Now the tracapi checks if there is an error encoding the strings and in this case, logs the exeption discarding
|
|
the message but the thread, continues running. Anyway the error has been fixed in the server side. (Reported by
|
|
Jorge Piera, 30/09/2014)
|
|
- If there is a control point without coordinates the lat,lon values are not included in the parameters file
|
|
and the library doesn't create the IControlPoint. Now, the library creates the IControlPoint and it returns
|
|
the values Double.MAX_VALUE for both the lat and the lon. This position is not sent by the
|
|
IControlPointPositionListener.gotControlPointPosition(). (Reported by Jakob Odum, 28/10/2014)
|
|
- There is a synchronization bug registering and sending messages using the General Message System. The list
|
|
that is used to register the listeners is not a synchronized list. This bug has been fixed (Reported by Axel Uhl, 19/11/2014,
|
|
http://bugzilla.sapsailing.com/bugzilla/show_bug.cgi?id=2474)
|
|
|
|
********************************************
|
|
TracAPI 3.0.6
|
|
********************************************
|
|
This is a final version. It fixes bugs in the implementation and it adds a new feature.
|
|
This new feature adds methods to the API, but it keeps the backward compatibility.
|
|
This version provides a new JavaDoc version.
|
|
|
|
Release date: 11/08/2014
|
|
|
|
1) New features
|
|
|
|
- The IRaceCompetitor implements the IMetadataContainer interface (Requested by Frank Mittag, 16/07/2014)
|
|
|
|
2) Bugs
|
|
|
|
- The race name and the visibility are not updated in the IRacesListener.update() method.
|
|
(Reported by Jorge Piera, 06/08/2014)
|
|
- The IRaceCompetitor doesn't contains the associated IRoute object (Reported by Jorge Piera, 08/08/2014)
|
|
- Changing the synchronization of the maps in the EventFactory (Reported by Axel Uhl, 09/08/2014)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.0.5
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 05/08/2014
|
|
|
|
1) Bugs
|
|
|
|
- The previous version 3.0.4 added only changes in the synchronization. The lists were synchronized by hand
|
|
but the implementation continued using synchronized lists. The result was that we had a double
|
|
synchronization for all the lists of the model: the synchronization by hand and the synchronization of
|
|
the list. (Reported by Axel Uhl, 04/08/2014)
|
|
- The new subscription library sends the static positions (from the parameters file) as positions events.
|
|
The problem here is that the subscription library retrieves the positions from the model of control
|
|
points and when some races are loaded in parallel these values can be invalid (values loaded by
|
|
other race). Now the subscription library sends the static positions from the parameters file.
|
|
(Reported by Jorge Piera, 04/08/2014)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.0.4
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 04/08/2014
|
|
|
|
1) Bugs
|
|
|
|
- Some lists are not thread-safety. The model project exposes some lists based on a
|
|
CopyOnWriteArrayList implementation that is thread-safety if you get its iterator.
|
|
But if before to invoke the iterator() method of the list, other thread is editing the list,
|
|
it is possible to get a list in an invalid status. (Reported by Axel Uhl, 31/07/2014)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.0.3
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 25/07/2014
|
|
|
|
1) Bugs
|
|
|
|
- When a race is reloaded more than one time it keeps the entries despite of they have been removed. The new entries
|
|
are correctly added but the removed competitors are kept. (Reported by Axel Uhl, 25/07/2014)
|
|
|
|
|
|
********************************************
|
|
TracAPI 3.0.2
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 24/07/2014
|
|
|
|
1) New features
|
|
|
|
- The IRacesListener.updateRace() event is thrown when the live delay for a race has changed. The IRace.getLiveDelay() method
|
|
returns the new value.
|
|
|
|
2) Bugs
|
|
|
|
- The events IRacesListener.abandonRace() and IRacesListener.startTracking() have been reviewed. Now they are always sent
|
|
when the races are updated either using the event manager or using the external JSON service "update_race_status"
|
|
- The controls are not updated when they are retrieved a second time from a parameters file. The library always returns
|
|
the first control that was read the first time. (Reported by Axel Uhl, 24/07/2014)
|
|
|
|
********************************************
|
|
TracAPI 3.0.1
|
|
********************************************
|
|
This is a final version. Only fixes bugs in the implementation
|
|
|
|
Release date: 09/06/2014
|
|
|
|
1) Bugs
|
|
|
|
- Error reading JSON of races.
|
|
|
|
********************************************
|
|
TracAPI 3.0.0
|
|
********************************************
|
|
This is a final version.
|
|
|
|
Release date: 04/06/2014
|
|
|
|
1) New features
|
|
|
|
- The positions of the static marks are sent like an event
|
|
- The static start/end tracking times and the static start/end race times are sent like an events
|
|
- The static course is sent like an event
|
|
- The IConnectionListener.stopped() method uses an object as argument
|
|
- The start/end tracking times are 0l if the race has not been initialized
|
|
- Added the IRaceListener.startTracking event
|
|
- Added the IRace.getExpectedRaceStartDate()
|
|
- Added the IRace.isInitialized()
|
|
- Added the IRace.getVisibility()
|
|
|
|
2) Bugs
|
|
|
|
- Error reading the race start time from the JSON
|
|
- Synchonizating the locators used to retrieve objects using the Service Provider Interface
|
|
|
|
********************************************
|
|
TracAPI 3.0.0-SNAPSHOT
|
|
********************************************
|
|
|
|
This is an SNAPSHOT version that means that is a version that has not been released (is under development).
|
|
|
|
1) Bugs
|
|
|
|
- The route name is lost when the ControlRouteChange event is thrown
|
|
- Adding synchronized lists in some objects of the model that were not synchronized
|
|
- Fixing an error using a local parameters file with a local MTB file
|
|
- Fixing several errors marshaling the objects then an static property has been changed
|
|
- Fixing a bug parsing a JSON with races that has races without params_url (for Orienteering events)
|
|
|
|
|
|
|
|
|