v2.0.61
2.0.61.0 (7/20/2023)
- Stages can be of SprintRace type
2.0.60.0 (5/17/2023)
- CustomBetManager respects ExceptionHandlingStrategy for all non-argument-validating exceptions
- CustomBetManager now throws CommunicationException on API failures
- API failures across the board carry to the client: url used and http code returned
- BookingManager respects ExceptionHandlingStrategy for CommunicationExceptions
2.0.59.0 (1/26/2023)
- Added support for group urn type
- Fix ignore fixture_change_fixture endpoint for virtual producers
2.0.58.3 (1/12/2023)
- Fix: GlobalReplay environment not discards messages from disabled packages for the customer
2.0.58.2 (1/9/2023)
- Fix: TLS version selection for RabbitMq connection no longer causes a crash in certain JVMs
2.0.58.1 (12/27/2022)
- Fix: Artifact descriptor in maven central is fixed, so that SDK is usable in maven projects again
2.0.58.0 (12/23/2022)
- Added GlobalReplay environment
2.0.57.0 (9/20/2022)
- CustomBet - added support for calculate-filter endpoint
- Fix: http request logged twice
- Fix: NPE when LocalizedNamedValue does not have description
2.0.56.0 (7/15/2022)
- Fix: recovery request url when configuring custom environment
- Fix: handling for system session connection reset
2.0.55.0 (6/2/2022)
- Added method isOpen to OddsFeed
- Feed close cleanup improvements (cache items invalidated, session closed)
2.0.54.1 (5/6/2022)
- Fix: fast HttpClient timeout fixed
2.0.54.0 (4/26/2022)
** Contains critical bug and should not be used. Use version 2.0.54.1. **
- Separate HttpClient for critical and other requests
- Added configuration option for fast HttpClient in OperationManager (default timeout 5s)
- Extended SportsInfoManager with getTimelineEvents
- Improved how SportInfoManager is handling exceptions
- Improved logging for raw data events
2.0.53.0 (2/23/2022)
- Added getBetradarName to Round
- Improvement: handling of alive messages in regard to producer status
- Fix: multiple connections in case of disconnection
- Fix: Competition competitors did not expose IsVirtual correctly
2.0.52.1 (1/20/2022)
- Fix: after disconnection some feed messages can not be deserialized
2.0.52.0 (12/10/2021)
- Added support for event results in SportEventStatus received from api
- Extended MarketDescriptionManager with parallelPrefetchVariantMarketDescriptions
- Improved logging exception during message consumption
- Fix: connecting to replay server with production token
- Fix: setting custom configuration from properties files
- Fix: loading competitor associated players data from match summary
- Fix: throws exception if match, stage or draw not found exception happens
2.0.51.0 (11/18/2021)
- Improvements for connection resilience
- Added onRecoveryInitiate to SDKProducerStatusListener
- Added RabbitConnectionTimeout and RabbitHeartbeat to OperationManager
- Improved logging regarding connection and recovery process
- Fix: how connection and channels are made
- Extended StageType with Run enum value
- Changed default UF environment from Integration to GlobalIntegration
2.0.50.0 (10/6/2021)
- Extended configuration with ufEnvironment attribute
- Extended TokenSetter and EnvironmentSelector
- New values added to Environment enum (GlobalIntegration, GlobalProduction, ProxySingapore, ProxyTokyo)
2.0.49.1 (9/9/2021)
- When fetching non-cached fixture change endpoint fails due to server error, try also normal fixture endpoint
- Update: default timeout for max recovery time set to 1h
- Fix: Properly fetch multiple languages for categories
- Other minor improvements and bug fixes
2.0.49.0 (7/23/2021)
- Extended Stage with getStatus returning StageStatus (with match status)
2.0.48.0 (6/23/2021)
- Added OperationManager to provide option to set sdk values (before OddsFeed instance creation)
- Added option to ignore sport event status from timeline endpoint for BetPal events
2.0.47.0 (6/15/2021)
- Added pitcher, batter, pitch_count, pitches_seen, total_hits, total_pitches to SportEventStatus properties
- PeriodScore - match status code 120 mapped to penalties
- Connecting to rabbit with the newest supported SSL protocol
- Fix: Re-fetching variant market descriptions after deleting the SDK cache for an event
- Fix: merging tournament groups
2.0.46.0 (5/28/2021)
- OutcomeProbabilities extended with getAdditionalProbabilities
- Extended MarketWithProbabilities with getMarketMetaData
- Extended Tournament with getSchedule
2.0.45.0 (4/29/2021)
- Added SportInfoManager.getPeriodStatuses to fetch period summary for stages
- Extended CompetitionStatus with getPeriodOfLadder
2.0.44.2 (4/9/2021)
- fix: converting GoalScorer
- fix: importing Venue
2.0.44.1 (4/2/2021)
- fix: parsing TeamStatisticsDTO for sportEventStatusDTO
2.0.44.0 (3/31/2021)
- added getEventChangeManager() to OddsFeed for a periodical fixture and result change updates
- changed return value type for TimelineEvent.getPlayer() from Player to EventPlayer (breaking change)
- changed return value type for TimelineEvent.getGoalScorer() from Player to GoalScorer (breaking change)
- extended Player with GoalScorer (added getMethod()) used in TimelineEvent
- extended Player with EventPlayer (added getBench()) used in TimelineEvent
- added Competitor.getShortName
- added Fixture.ProducerInfo.isInLiveMatchTracker
- reverted populating Round name, groupName and phaseOrGroupLongName to exactly what is received from API
- added getStartTime, getEndTime and getAamsId to the MarketMetaData
- added PeriodOfLeader to the SportEventStatus.Properties
- updated FixtureChangeType - also if not specified in fixtureChange message returns FixtureChangeType.NotAvailable
- improved connection error reporting
- fix: WNS event ids can have negative value
- fix: NPE merging tournament groups
- fix: merging tournament groups (when no name or id)
- fix: exporting/importing data
2.0.43.0 (2/9/2021)
- added support for eSoccer - returns SoccerEvent instead of Match
- added SportsInfoManager.getLotteries
- added support for simple_team urn
- improved example to support all desired locales
- fix: merging tournament groups
- fix: merging tournament data
- fix: NPE in data router fixture handling
2.0.42.1 (12/18/2020)
- fix: NPE in case of missing market description
- improved logging
2.0.42 (11/13/2020)
- added new stage types in StageType enum (Practice, Qualifying, QualifyingPart, Lap)
- fix: use competitor data from fixture.xml API enpoint
- fix: loading sportEventType and stageType from parent stage if available
- fix: parsing outcomes
- fix: restarting recovery timestamp fixed when alive violation happened during previous one
2.0.41 (10/13/2020)
- Round - added getGroup, added getGroupName (breaking change)
- Stage - added getAdditionalParentStages, getStageType (breaking change - result changed from SportEventType to StageType)
- extended EventResult with getDistance and getCompetitorResult methods
- Competition extended with getLiveOdds and getSportEventType methods
- added getCourse to the Venue
- added Coverage to IMatch
- optimized message deserialization
- optimized fetching outcome names for multiple languages
- improved connection error handling and reporting
- improved fetching of multiple locales for market names
- fix: allow null values when fetching multiple locales for market names
- fix: added support for indonesian locale
- fix: event status enumeration
2.0.40.1 (9/22/2020)
- added MaxConnPerRoute and MaxConnTotal configuration for HTTP client
2.0.40 (8/19/2020)
- extended SeasonInfo with startDate, endDate, year and tournamentId
- fix: CustomBetManager return new CustomBetSelectionBuilder
- fix: make serialize synchronised
- fix: fetching market description are marked done only after successful obtaining data
- fix: Immutable map exception parsing competitor references
- fix: un-needed URN parse exception logging
- fix: using ReplayOddsFeed with integration token
- fix: how after parameter is sent in getFixtureChanges
- fix: reloading market description in case variant descriptions are not available
- improved logging of initial message processing
2.0.39 (7/9/2020)
- added getSport() and getCategory() to Competitor interface
- throttling recovery requests
- fix: closing recovery HTTP client on OddsFeed.close()
2.0.38 (6/24/2020)
- added overloaded methods for fixture and result changes with filters
- added separate HTTP request timeout value for recovery endpoints
- updated supported languages
- improved reporting of invalid message interest combinations
- fix: NPE when obtaining market descriptions
2.0.37 (5/11/2020)
- added support for result changes endpoint
- fix: responses are encoded/decoded using UTF-8
- fix: lotteries endpoint isn't invoked if WNS is disabled
2.0.36 (4/16/2020)
- added getSchedule method to BasicTournament interface
- added bookmakerId to the ClientProperties
- fix: new Replay API endpoint supports both production and integration tokens
- fix: exporting Fixture cache items
2.0.35.1 (3/25/2020)
- changed Replay API URL
2.0.35 (3/23/2020)
- added support for HTTP(S) proxies
2.0.34 (3/16/2020)
- fix: fetching outcome mappings
- fix: loading sport events after cache import
- improved HTTP request logging
- improved handling user exceptions inside listener callbacks
2.0.33 (2/18/2020)
- added getState() to the Competitor
- added getState() to the Venue
- improved fetching fixtures for Replay environment
- improved loading configuration from files
- fix: handling sports without tournaments added new Replay API endpoints
2.0.32 (1/14/2020)
- added new Replay API endpoints
- improved market and variant caching
- fix: fetching outcome mappings for special markets that exists only on dynamic variant endpoint
2.0.31.1 (12/10/2019)
- fix: fetching and merging player profile data
2.0.31 (12/9/2019)
- added getReplaySportEventsList to the ReplayManager
- added missing summary endpoint competitors caching
- added example for parsing messages in separate thread
- improved logic for getting player profiles
- improved fetching and loading PeriodStatistics
- fix: loading playerprops variant market descriptions
- fix: logging for HTTP POST requests
2.0.30 (11/8/2019)
- fix: better market description cache handling
2.0.29 (10/24/2019)
- added cache state export/import
- added getAdditionalProbabilities() to the OutcomesOdds
- added getAgeGroup to the Competitor
- added getGreenCards() to the TeamStatistics
- added Statistics to the SportEventStatus.toKeyValueStore()
- improved parsing dates without timezone
- fix: possible multi-thread issues caching competitors
- fix: Manager.getNationality returned name
- fix: replay ignores messages from inactive producers
- fix: odds format is now consistent with the documentation
- fix: green card can be null in sport event statistics
2.0.28 (9/5/2019)
- exposed option to delete old matches from cache (SportInfoManager.deleteSportEventsFromCache)
- loading home and away penalty score from penalty PeriodScore if present
- fix: updated CustomConfigurationBuilder not to override pre-configured values
- fix: interrupted recoveries are restarted on alive message
- fix: SportInfoManager.getCompetitonsFor(Date, Locale) invokes for correct locale
2.0.27 (7/18/2019)
- added getListOfSportEvents and getAvailableTournaments to the SportInfoManager
- added isDecidedByFed to the MatchStatus
- added getRaceDriver to the Competitor
- added isExhibitionGames to the BasicTournament and Tournament
- added getId to the Group
- added getName to the TeamStatistics
- fix: not loading variant market data in multi-language scenario
2.0.26 (6/21/2019)
- added isStartTimeTbd and getReplacedBy to the SportEvent
- added getStripesColor, getSplitColor, getShirtType and getSleeveDetail to the Jersey
- added getMatchStatusCode to PeriodScore
- improved on updating when new outcomes are available (outrights)
- exposed option for user to receive raw feed and api data
2.0.25 (6/7/2019)
- added getDivision to the TeamCompetitor
- added getGender to the Competitor and PlayerProfile
- added getStreamUrl to the TvChannel
- added getPhase to the Round
- CompetitionStatus.getStatus() no more deprecated (fixed underlining issue)
- improved caching of variant market descriptions
- fix: wrong periodType in PeriodScore
2.0.24 (5/22/2019)
- added support for custom bets
- added customBetManager and getAvailableLanguages to the OddsFeed
- added setSpecificEventsOnly to the OddsFeedSessionBuilder
- added getFixtureChanges to the SportsInfoManager interface
- exposed option to reload market descriptions
- fix: preserving the order of default and desired locales in configuration
- fix: return cached event status for sport events
2.0.23 (4/18/2019)
- exposed Round.getGroupId()
- improved handling of SportEventStatus updates
- fix: incorrect message validation
- fix: initial value for eventStatus
2.0.22 (4/8/2019)
- added support for non-cached fixture endpoint
- improved fetching logic for the summary endpoint
- fix: handling pre:outcometext and simpleteam ids in cache
- fix: null check for names in Category and Sport
2.0.21 (3/12/2019)
- exposed EventResult.getGrid()
- exposed Reference.getAamsId()
- added support for ReferenceIds for competitors within season/tournament groups
- added support for simpleteam competitors and related API calls
- improved recovery logic on channel disconnect
- improved how type on PeriodScore is loaded
- added runParallel argument on play method on ReplayManager
- fix: null check for names in Category and Sport
- fix: how periods score data is saved and exposed (period type and description was wrong)
2.0.20 (2/14/2019)
- exposed getTimestamps() on Message
- added getRecoveryInfo() (info about last recovery) to the Producer
- added support for replay feed to the Feed instance
- fix: MarketMappingDataImpl.canMap - added producerId check
- fix: Sport.getCategories now returns all categories, delayed fetching until needed
- fix: Locking problem with market description fetching
- fix: null check when mapping CoveredFrom
- fix: added null check in PeriodScoreImpl
- note: artifact moved to maven central
2.0.19.1 (1/9/2019)
- fix: null check when mapping CoveredFrom enum
2.0.19 (1/7/2019)
- added Fixture.CoverageInfo.CoveredFrom property
- added getOutcomeType method to MarketDefinition (to replace includes_outcomes_of_type)
- fix: Competitor.References - fixture is fetched only if competitor references are explicitly requested by user
- fix: avoiding fetching fixture for BookingStatus when received via schedule
2.0.18 (12/18/2018)
- added method getWillBeRestarted to SnapshotCompleted message
- added OddsGenerationProperties to the OddsChange message
- replay session using any token returns production replay summary endpoint
- added support for custom api hosts (recovery for producers uses custom urls)
- added Season start time and end time to exposed dates
- renamed Staging to Integration environment
vother minor fixes and improvements
2.0.17 (11/16/2018)
- exposed BookmakerDetails on OddsFeed - exposing bookmakerId, serverTimeDifference and token expiration date
- removed fetching of fixture for TournamentRound (only summary, if needed)
- improved handling of competitor reference id(s)
- minimized rest api calls - removed calls for eng, when not needed (requires language to be set in configuration)
- outcomeSettlement default deadHeatFactor set to 1 (before 0)
- removed purging of sportEventStatus on betSettlement message
- fix: null bug for nodeId in configuration
- fix: the ordinal name spelling for all languages
2.0.16 (10/17/2018)
- added Competition.getStatusIfPresent() to retrieve if from cache without API call
- added Match.getEventTimelineIfPresent() to retrieve if from cache without API call
- added properties to TimelineEvent (goalScorer, player, assists,...)
- added warn message for negative nodeId (negative id is reserved for internal use only)
- improvement: added a dedicated executor for the RecoveryManager
- fix: SportEventStatusCache considers source of status and cache timeout
- fix: for null competitor abbreviation (must not be null)
- fix: calling the summary with nodeId if specified (on replay server) - sport event status changes during replay of the match
2.0.15 (9/17/2018)
- added new event status: EventStatus.Interrupted
- updated api xsd schemas
- added handling of PlayerCompetitor available in Competitor.Players
- changed return type of method Competitor.getPlayers() to list of Player (to support players and competitors)
- sport event EventStatus exposed directly on Competition.getEventStatus()
- optimized data fetching on sport event (data from schedule for a day is not fetched again)
2.0.14 (8/24/2018)
- added support for getting outcome odds in different formats - getOdds(OddsDisplayType)
- AMQP threads named based on Bookmaker/nodeId
- fix: added missing support for node_id on snapshot_complete routing keys
- fix: added missing null checks for getMappings
- fix: added null check when fetching sportId
2.0.13 (8/2/2018)
- fix: competitor references are saved per sport event
2.0.12 (7/25/2018)
- added check for feed opened before closing its components
- added purging of Draw event data on BetStop and BetSettlement
- added support for 2 routing keys for VirtualSports message interest
- added support for new producer field (stateful_recovery_window_in_minutes)
- added Pitcher info on SportEventConditions
2.0.11 (6/26/2018)
- introduced a new "UnparsableMessage" callback
- increased max concurrent HTTP requests to 15 (from 2)
- fixed market cache refresh failure retry
- added support for custom API IP (with custom port)
- other minor fixes
2.0.10 (6/11/2018)
- exposure of Fixture.getScheduledStartTimeChanges
- exposure of Reference.getRotationNumber
- fixed OutcomeMappingData.getProducerOutcomeId return value
- fixed Competition.getVenue return value
2.0.9 (5/22/2018)
- market/outcome name generation performance improvement(if the required data is cached)
- fixed Stage.getParent(in some cases the "middle" parent stage was skipped and the method returned always the "top" level parent)
- event competitors list cache logic updated(always overwrite instead of merge)
- simpleteam caching logic update
- log entries improved
2.0.8 (5/7/2018)
- introduced the new SDKProducerStatusListener.onProducerStatusChange in favour of onProducerDown and onProducerUp
- added support for node id on per event recoveries
- fixed ReplayManager.getPlayStatus
- removed unneeded YAML reader warning
- fixed system time validation(some locales had issues while parsing the server response time)
2.0.7 (4/16/2018)
- exposure of Fixture.getReplacedBy
- exposure of Venue.getCountryCode
- exposure of Round.getPhaseOrGroupLongName
- sport event status caching improved
- improved alive messages monitoring
- added system time validation against API time
- added support for YAML configuration
- other logic and code improvements
2.0.6 (3/28/2018)
- exposure of Fixture.getStartTimeTbd
- added support for decimal results on "EventResult"(Stage entity results)
- added the possibility to set a custom messaging virtual host on the CustomConfigurationBuilder
- added sample SDK properties to the included example
- added support to purge sport event status on demand(trough SportsInfoManager)
- improved handling of "simpleteam" entities
- when a match gets booked successfully, the SDK now updates the internal state of the booking status
- minor fixes and improvements
2.0.5 (3/13/2018)
- configuration build process refactored, previous build path was deprecated!
- added a new market type - MarketCancel, accessible trough the BetCancel message
- addition of the EventStatus.Postponed enum value
- match status fetching logic improvements
- fixed flex score market name generation (0.0 -> 0, 1.0 -> 1,...)
- Fixture.getNextLiveTime date parsing fixed
- improved handling of malformed market specifiers
- added the possibility to get adjusted market mappings
- added additional features to the ReplayManager play and playScenario methods
- added support for using staging tokens on the replay server
- added advanced replay event scenarios (available in the example project)
- minor improvements on the feed session message interests checking
- example projects updated to use staging as default environment
- default staging broker URL fixed
- log fixes and improvements
2.0.4 (2/20/2018)
- exposure of additional information on the Fixture
- added SDK support for MDC context tag(uf-sdk-tag)
- improved recovery id generation logic
- fixed ReplayManager.addSportEventToReplay method
- improved WNS lotteries endpoint handling
- minor fixes
2.0.3 (1/29/2018)
- added support for the WNS producer
- addition of "OutcomeResult" to OutcomeSettlement
- OutcomeSettlement.isWinning deprecated in favour of "OutcomeResult"
- entities ordinal name generation fix
- other minor improvements and bug fixes
2.0.2 (1/15/2018)
- added support for replay server node id
- added support for seamless access to staging env(trough the configuration)
- extended support for SDK configuration trough the properties file
- exposure of named value ids(void reasons, betstop reason,...)
- events cache improvements
- variant markets caching update
2.0.1 (12/22/2017)
- modification of the variant market name generation
- introduced new fixture change types(the new types previously mapped to "OTHER")
- further improvements on the cache loading system
- added support for $event name template
- added support for negative SDK node id
- added additional replay server features(ReplayManager methods update)
- default replay queue clearing removed
- MarketMappingData.getProducerId deprecated, replaced with MarketMappingData.getProducerIds
- PeriodStatistics.getTeamStatisticDTOS deprecated, replaced with PeriodStatistics.getTeamStatistics
- EventClock.getRemainingDate deprecated, replaced with EventClock.getRemainingTime
- other minor fixes/improvements/Javadoc fixes
2.0.0 (11/28/2017)
- modification of the variant market name generation
- addition of the Match.getEventTimeline
- manual cache purge methods exposure
- added support for LiveOdds booking
- addition of the Tournament.getSeasons
- additional player and competitor properties exposure
- SDK node id support
- javadoc fixes
- improvements (tournament round loading, additional data exposure,..)
- log improvements (API response messages, caching,..)
- bug fixes
- examples update
2.0.0 BETA-4 (11/6/2017)
- SportEvent hierarchy overhaul - 'stage' support
- added support for probability endpoints
- improvements (player markets optimizations,..)
- bug fixes
2.0.0 BETA-3 (10/9/2017)
- Further recovery process improvements
- Message validation
- Virtual sports support
- Addition of CurrentSeason.getSchedule()
- Added additional examples
- Added support for %server market name template
- Various optimization to reduce GC impact on performance
- Logs improvements
- Other bug fixes
- Minor Javadoc fixes
2.0.0 BETA-2 (9/18/2017)
- Variant market name generation fix
- Introduction of new ProducerDownReason and ProducerUpReason enum values
- Added support for specific event recovery
- Added a new method on the Producer object, getTimestampForRecovery - the return value of this method should be used to initiate a - SDK recovery after a manual restart
- Improved support for event name generation(SportEvent.getName(Locale))
- Introduction of a sport specific type object -> SoccerEvent
- Breaking change: the SportEventStatus was replaced with the CompetitionStatus(added support for soccer statistics,...)
- Breaking change: introduced a new type of SportEvent called LongTerm event which is than extended by Tournament and Season
- Recovery procedure improvements
- Stability improvements
- Improvement of various log entries
- Javadoc improvements and fixes
- Other bug fixes
2.0.0.0 beta (8/28/2017)
- Data translation fixes
- Improved recovery manager
- Improved Javadoc
- Improved logs
- Spelling corrections
- PlayerOutcomeOdds introduction
- Re-introduction of the enum PeriodType
- SportsInfo interface renamed to SportsInfoManager
- Replay feed initialization procedure updated
- Added support for accessing sports without tournaments (SportsInfoManager.getSports())
- And other fixes
- NOTE: There will be minor changes in the SportEventStatus interface(including the addition of match statistics)
2.0.0.0 alpha (7/25/2017)
- Initial release