Changelog History
Page 6
-
v18.5.0 Changes
๐ Bug Fixes
* util-core: `c.t.concurrent.AsyncSemaphore` no longer completes promises while holding its intrinsic lock. ``PHAB_ID=D167434`` * ๐ฒ util-logging: Fix incorrect `loggerName` in `c.t.logging.ScribeHandler` which prevented the short-circuiting of publishing messages emitted from the ScribeHandler. ``PHAB_ID=D161552`` * util-hashing: Add murmur3, a fast, non-cryptographic hashing function that is missing from hashing. ``PHAB_ID=D164915``
-
v18.4.0 Changes
๐ New Features
* util-app: Add the ability to bind specific implementations for `LoadService.apply` via `App.loadServiceBindings`. ``PHAB_ID=D146554`` * util-core: Introduce the `ClosableOnce` trait which extends the guarantees of `Closable` to include idempotency of the `close` method. ``PHAB_ID=D152000`` โ Runtime Behavior Changes
util-app: Add visibility for NonFatal exceptions during exiting of
c.t.app.App
. Added visibility into any NonFatal exceptions which occur during the closing of resources duringApp#close
.PHAB_ID=D146029
util-core: Ensure the
Awaitable.CloseAwaitably0.closeAwaitably
Future returns. Because theclosed
AtomicBoolean is flipped, we want to make sure that executing the passed inf
function satisfies theonClose
Promise even the cases of thrown exceptions.PHAB_ID=D146565
๐จ util-stats: Alphabetically sort stats printed to the given
PrintStream
in thec.t.finagle.stats.InMemoryStatsReceiver#print(PrintStream)
function.
To include stats headers which provide better visual separation for the different types of stats being printedm, set
includeHeaders
to true. E.g.,InMemoryStatsReceiver#print(PrintStream, includeHeaders = true)
PHAB_ID=D144091
-
v18.3.0 Changes
โ Runtime Behavior Changes
* ๐ util-app: Ensure that any flag parsing error reason is written to `System.err` before attempting to print flag usage. In the event that collecting flags for the printing the usage message fails, users will still receive a useful message as to why flag parsing failed. ``PHAB_ID=D137629`` * util-core: Promises/Futures now use LIFO execution order for their callbacks (was depth-based algorithm before). ``PHAB_ID=D135407`` * util-core: Wrap the function passed to `Closable.make` in a try/catch and return a `Future.exception` over any NonFatal exception. ``PHAB_ID=D142086`` ๐ Deprecations ~~~~~~~~~~~~ * ๐ util-core: RichU64* APIs are deprecated. Use Java 8 Unsigned Long API instead: ``PHAB_ID=D137893`` - `new RichU64String("123").toU64Long` -> `Long.parseUnsignedInt` - `new RichU64Long(123L).toU64HexString` -> `Long.toHexString` (no leading zeros)
-
v18.2.0 Changes
๐ New Features
* util-core: Added implicit conversion for percentage specified as "x.percent" to a fractional Double in `c.t.conversions.percent`. ``PHAB_ID=D128792`` * util-tunable: Add deserializer for `c.t.u.StorageUnit` to JsonTunableMapper ``PHAB_ID=D132368`` โ Runtime Behavior Changes
- util-app: When
c.t.a.App.exitOnError
is called, it now givesclose
an opportunity to clean up resources before exiting with an error.PHAB_ID=D129437
- util-app: When
-
v18.1.0 Changes
๐ New Features
* ๐ util-security: Added `c.t.util.security.X509CrlFile` for reading Certificate Revocation List PEM formatted `X509CRL` files. ``PHAB_ID=D127700``
-
v17.12.0 Changes
๐ฅ Breaking API Changes
* ๐ util-collection: `c.t.util.SetMaker` has been removed. Direct usage of Guava is recommended if needed. ``PHAB_ID=D116852``
-
v17.11.0 Changes
Dependencies
* ๐ Guava has been removed as dependency from all modules except the 'util-cache-guava' module. ``PHAB_ID=D117039`` ๐ New Features
- ๐ util-security: Added
c.t.util.security.PrivateKeyFile
for reading PKCS#8 PEM formattedPrivateKey
files.PHAB_ID=D105266
๐ Bug Fixes
* ๐ util-core: `c.t.io.BufByteWriter.fixed(size).owned()` will only represent bytes explicitly written instead of the full size of the backing array, `size`. ``PHAB_ID=D112938`` ๐ฅ Breaking API Changes
util-cache: The Guava dependency and its associated implementations have been moved to a new module, 'util-cache-guava'.
PHAB_ID=D117039
util-cache:
c.t.cache.EvictingCache.lazily
now takes aFutureCache
instead of an implementation specific cache.PHAB_ID=D117039
- ๐ util-security: Added
-
v17.10.0 Changes
๐ Release Version Changes:
* ๐ From now on, release versions will be based on release date in the format of YY.MM.x where x is a patch number. ``PHAB_ID=D101244`` ๐ New Features ~~~~~~~~~~~~ * util-intellij: Create util-intellij project and publish IntelliJ capture points plugin for debugging asynchronous stack traces of code using Twitter Futures in Scala 2.11.11. ``PHAB_ID=D96782`` ๐ฅ Breaking API Changes ~~~~~~~~~~~~~~~~~~~~ * util-app: c.t.app.Flag.let and letClear are now generic in their return type. ``PHAB_ID=D93951`` ๐ Bug Fixes ~~~~~~~~~ * util-core: Fix Buf.ByteArray.Shared.apply(bytes,begin,end) constructor function. ``PHAB_ID=D100648`` โ Runtime Behavior Changes
util-core: c.t.io.Buf.ByteArray.[Owned.Shared](Array[Byte], begin, end) now validates its input arguments.
PHAB_ID=D100648
๐ util-jvm: The
jvm/mem/postGC/{poolName}/max
metric has been removed because it is the same as thejvm/mem/current/{poolName}/max
metric.PHAB_ID=D95291
๐ util-security: Assert validity of X.509 certificates when read from a file. Attempting to read a
c.t.util.security.X509CeritificateFile
will now assert that the certificate is valid, i.e., if the current date and time are within the validity period given in the certificate.PHAB_ID=D88745
-
v7.1.0 Changes
September 06, 2017๐ฅ Breaking API Changes
* ๐ util-events: Module has been removed. ``PHAB_ID=D82346`` * ๐ util-lint: Add GlobalRules#withRules for testing. Allow for the ability to specify a global rules set for use in testing. ``PHAB_ID=D83506``
-
v7.0.0 Changes
August 15, 2017๐ New Features
* util-core: Added `c.t.util.SlowProbeProxyTimer` for monitoring the duration of execution for timer tasks. ``PHAB_ID=D70279`` * util-core: Introduced RootMonitor#set to set custom Monitor to RootMonitor. ``PHAB_ID=D70876`` * ๐ util-jvm: `JvmStats` has been moved here from TwitterServer allowing broader access to many metrics including GC, allocations, memory, and more. ``PHAB_ID=D80883`` * ๐ util-stats: Introducing Verbosity Levels for StatsReceivers (see docs on `StatsReceiver` for more info). ``PHAB_ID=D70112`` * util-tunable: `c.t.u.tunable.Tunable`, `c.t.u.tunable.TunableMap`, `c.t.u.tunable.JsonTunableMapper`, and `c.t.u.tunable.ServiceLoadedTunableMap` are now public. This allows users to create and use Tunables, a mechanism for accessing dynamically configured values. See https://twitter.github.io/finagle/guide/Configuration.html#tunables for details on how these can be used in Finagle. ``PHAB_ID=D80751``. ๐ Bug Fixes ~~~~~~~~~ * util-core: Fix some consistency issues with `c.t.util.ByteReaderImpl`. Advance its cursor by the number of bytes consumed via `readBytes(Int)`, not the number specified as a method argument. `readString` will now throw an UnderflowException if the number of bytes specified exceeds the remaining buffer length instead of silently making due with the rest of the buffer's contents. ``PHAB_ID=D78301`` โ Runtime Behavior Changes
util-core:
c.t.util.Closable.sequence
now continues processing theClosables
should any of their closes result in a failedFuture
and will return the first failure. Synchronous exceptions are now handled by lifting them into failedFutures
.PHAB_ID=D62418
0๏ธโฃ util-events:
com.twitter.util.events.sinkEnabled
now defaults to false in preparation for removal in an upcoming release.PHAB_ID=D64437
๐ฅ Breaking API Changes
* util-core: ByteWriter has been transformed into a true trait which can now be implemented outside of the com.twitter.io package. ``PHAB_ID=D59996`` * ๐ util-core: The method ByteWriter.owned() has been moved to a sub trait, BufByteWriter, to separate the notion of the target buffer representation from the writer methods in order to make it easier to target different buffer representations. ``PHAB_ID=D61215`` * util-stats: ``PHAB_ID=D59762`` - `ProxyStatsReceiver.self` is now protected (was public before). - `StatsReceiver.repr` is now `def` (was `val` before). * util-stats: `Counter#add` now takes a `Long` instead of an `Integer` as an argument. ``PHAB_ID=D69064`` * util-stats: `StatsReceiver#counter`, `StatsReceiver#stat`, and `StatsReceiver.addGauge` now may optionally take `c.t.f.stats.Verbosity` as a first argument. ``PHAB_ID=D70112`` ๐ Deprecations ~~~~~~~~~~~~ * ๐ util-events: This module is deprecated and will be removed in an upcoming release. ``PHAB_ID=D64437`` * util-stats: ``PHAB_ID=D62611`` - `StatsReceiver.counter0` is deprecated in favour of vararg `StatsReceiver.counter` - `StatsReceiver.stat0` is deprecated in favour of vararg `StatsReceiver.stat`