CHANGES.md

Change Log

[Unreleased]

[5.3.0] - 2017-09-05

Added

  • Provide a means to specify the data source/exchange that one is targeting on, and AudienceSetClient only returns
    Audience set Match's that are associated with that data source. There will be no more need to filter Audience sets
    based on data source when using this new method: test(String dataSource, String canonicalId).
  • Data Source aliasing for Audience can be set via the Audience set client builder. AudienceSetClient.ClientParams.Builder.withDataSourceAliases().

Deprecated

  • Querying Audience client without giving data source, i.e. AudienceSetClient.test(String canonicalId)

[5.2.3] - 2017-07-26

Fixed

  • Issue with deactivated Audience sets served by merged config server were not fully disabled and matches would still be returned for that set but missing some metadata.
  • When merged config server is temporarily unavailable, don't instantly fall back to unmerged Audience sets.

[5.2.2] - 2017-07-20

Changed

  • Minimum glibc required is lowered to >=2.12 for merged Audience sets. glibc required >=2.14 since geopulse-client [5.2.0].

[5.2.1] - 2017-07-18

Added

  • Lower requirements back to Java 1.7 after regression introduced in geopulse-client [5.2.0].

[5.2.0] - 2017-07-11

Added

  • Support for merged Audience sets. Requires glibc >=2.14.

Changes

  • Use newly exposed fields to determine when an index is merged instead of relying on the same merged index appearing 2 or more times. Breaks compatibility with old citadel with merged proximity.
  • Bumped internal dependencies to match versions set in outpost.commons.
  • No longer clean cache directory for Proximity/Audience after initial load. Helpful to pre-cache needed files during testing.

Fixed

  • Merged proximity filter no longer has a chance of reloading when a filter gets deactivated and deployed to the client.
  • Fix regression that reintroduced SIGSEGV error in geopulse-client [5.1.4]

[5.1.5] - 2017-04-14

Fixed

  • Lower requirements back to Java 1.7 after regression in outpost.commons used in geopulse-client [5.1.4] required java 1.8

[5.1.4] - 2017-03-22

Changes

  • Various optimizations to both proximity and audience.
  • Remove clojure delay from proximity

[5.1.3] - 2017-03-02

Fixed

  • Do not unload proximity filters and audience sets when Citadel endpoint returns an unexpected http response code.
  • No longer return Matches with null fields from audience or proximity when unloaded entry caught mid removal.

[5.1.2] - 2017-01-26

Added

  • Add method to ProximityClient in order to query merge status for a given build-id.

Fixed

  • Improved performance of ProximityClient's testPoint method, fixing a regression introduced in 5.0.0.
  • Behavior for ProximityClient setting for max-indices now matches same setting in AudienceClient.
  • Client's exact version number now sent to Citadel when requesting configs, instead of major revision number only.
  • ProximityClient's testPoint method no longer throws IllegalStateException when previous configuration sync has failed.

[5.1.1] - 2016-12-21

Added

  • Support for merged Proximity indexes. Proximity indexes that have distinct targeting codes can now be sent to the ProximityClient as a single combined/merged index. This reduces the total number of queries required and significantly lowers latency for organizations with thousands of indexes.

Fixed

  • Thread leak in the case where ProximityClient/newClient is called more than once.

[5.0.4] - 2016-11-30

Fixed

  • Bug in Audience client which would occur when an audience set is unloaded while the client is still querying it. The Java process would get killed via a SIGSEGV signal for accessing a cleaned java.nio.ByteBuffer.

[5.0.3] - 2016-08-15

Changed

  • ProximityClient.testPoint is now also multithreaded, using the same threadpool as ProximityClient.testMultiplePoints.

Added

  • ProximityClient and AudienceClient now both support a maxIndexesToQuery parameter. This can be used to test how your client would perform with fewer filters defined. However, it should generally not be used long term, because the set of filters that are used vs removed is arbitrary, and may not suit your use cases.

[5.0.0] - 2016-06-28

Fixed

  • Improved some malformed javadoc / typos

Removed

  • Support for audience profiles has been removed (no plans to remove audience sets)

Changed

  • ProximityClient.Coordinate is no longer an inner class: it's just Coordinate now
  • The independent SyncState enums in Proximity/Audience/Validator clients have been combined

Added

  • ProximityClient.testMultiplePoints method added
    • New configuration option ProximityClient.ClientParams.threadPoolSize to conrol its performance
  • Constructing a Proximity/Audience client can now be done with a builder
  • PERFORMANCE.md added, containing some advice for getting good QPS/latency

[4.0.14] - 2016-04-12

Fixed

  • Fixed memory leak related to configuration management.

[4.0.12] - 2015-12-09

Fixed

  • Bug where version number was sometimes incorrectly reported.

[4.0.11] - 2015-11-11

Fixed

  • Disable Java 8 primitives in Java 7 builds.

[4.0.10] - OnPrem Server Only

Fixed

  • Better detection of Oracle JRE.

[4.0.9] - OnPrem Server Only

Fixed

  • Java 6 compatibility.

[4.0.8] - OnPrem Server Only

Added

  • Introspection methods to the clients to power /help page.

Fixed

  • Self-reported version now fetched programmatically.
  • Introduced specific timeout when fetching configuration from Factual servers.

[4.0.7] - OnPrem Server Only

Added

  • Added getRequesterSlug() method to Match interface.

[4.0.4] - 2015-08-11

Added

  • Added getRequester() method to Match interface.

[4.0.3] - 2015-07-16

Changed

  • Disabled match deduplication when payloads are enabled.

[4.0.2] - 2015-07-05

Changed

  • Improved backwards compatiblity with older builds, such that design-specific fields in the Match object can always be populated, even if the set-specific fields are unknown.

[4.0.1] - 2015-06-04

Added

  • Added getDesignId() methods to both ProximityClient and AudienceSetClient

[4.0.0] - 2015-05-01

Added

  • Unified response representation for the ProximityClient and AudienceSetClient under the Match interface.
  • Added automatic deduplication of Proximity results.
  • Added omitPayload flag to Proximity testPoint() method, which is true by default, which allows for more effective deduplication when the payload is unnecessary.

Changed

  • When creating clients, in addition to the organizationId, users must also provide the apiKey and secretKey, which are available via http://factual.com

[3.1.10]

Changed

  • Made major improvements to the location validation logic.

[3.1.4]

Added

  • Added validate flag to Proximity testPoint() method, which is false by default, allowing for degenerate location data to be ignored.

[3.1.0]

Added

  • Introduced the AudienceSetClient and AudienceProfileClient.

[3.0.0]

Added

  • Repackaged Geopulse Proximity functionality within the ProximityClient.