forked from twitter/finagle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
1658 lines (1345 loc) · 68.5 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.. Author notes: this file is formatted with restructured text
(http://docutils.sourceforge.net/docs/user/rst/quickstart.html)
as it is included in Finagle's user's guide.
6.x
---
Breaking API Changes
~~~~~~~~~~~~~~~~~~~~
Runtime Behavior Changes
~~~~~~~~~~~~~~~~~~~~~~~~
Deprecations
~~~~~~~~~~~~
New Features
~~~~~~~~~~~~
6.24.0
------
Breaking API Changes
~~~~~~~~~~~~~~~~~~~~
* finagle-core: Remove `c.t.f.client.StackClient.Role.loadBalancer`, which
was unused and duplicated by `c.t.f.loadbalancer.LoadBalancerFactory.role`.
* finagle-core: `c.t.f.Namer.orElse` was removed; composing Namers
may be accomplished by constructing an appropriate Dtab.
* finagle-core: removed experimental `enum` / `expand` from
`c.t.f.Namer` and `alt` / `union` from `c.t.f.Dtab`.
* finagle-http: Remove `c.t.f.http.CheckRequestFilter` along with
`c.t.f.http.CheckHttpRequestFilter`. The functionality has been
added to `c.t.f.http.codec.HttpServerDispatcher`. In addition,
the codecError in `c.t.f.http.BadHttpRequest` has been replaced
with the exception thrown by the HttpServerCodec.
* finagle-mux: `c.t.f.mux.lease.exp.WindowedByteCounter` no longer
calls `Thread.start()` in its constructor. This should be now be
done by the caller.
* finagle-mux: The experimental session API is discontinued.
* finagle-mux: Introduce new Request and Response types for mux services.
The new mux request includes a `destination` path so that, which corresponds
to the `destination` field in Tdispatch requests. Furthermore, these new
types expose `c.t.io.Buf` instead of Netty's ChannelBuffers.
* finagle-thrift,finagle-thriftmux: `c.t.f.Thrift.Client`, `c.t.f.Thrift.Server`,
`c.t.f.ThriftMux.Client` and `c.t.f.ThriftMux.Server` have their
`TProtocolFactory` configured via a `c.t.f.thrift.param.ProtocolFactory`
`Stack.Param`.
* finagle-thriftmux: `c.t.f.ThriftMux.Client` now has its `ClientId`
configured via a `c.t.f.thrift.param.ClientId` `Stack.Param`.
* Traces (``com.twitter.finagle.tracing.Trace``) lose their local-state mutating methods:
``Trace.clear``, ``Trace.pushId``, ``Trace.setId``, ``Trace.setTerminalId``, ``Trace.pushTracer``,
``Trace.pushTracerAndSetNextId``,
``Trace.state_=``, and ``Trace.unwind``.
Let-bound versions of these are introduced in their stead.
This makes it simple to ensure that state changes are properly delimited;
further, these are always guaranteed to be delimited properly by Finagle.
::
Trace.setTracer(tracer)
codeThatUsesTracer()
// Let-bound version:
Tracer.letTracer(tracer) {
codeThatUsesTracer()
}
* Context handlers (``com.twitter.finagle.Context``) are removed.
They are replaced by the use of marshalled request contexts
(``com.twitter.finagle.context.Contexts.broadcast``).
Marshalled request contexts do not require the use of service loading,
so their use no longer requires build system coordination.
We show Finagle's trace context:
the first version uses the old context handler mechanism;
the second uses ``Contexts.broadcast``.
::
// The old context handler for Finagle's tracing context. Note that this
// also required the file
// finagle-core/src/main/resources/META-INF/services/com.twitter.finagle.ContextHandler
// to contain the fully qualifed class path of the below object.
class TraceContext extends ContextHandler {
val key = Buf.Utf8("com.twitter.finagle.tracing.TraceContext")
def handle(body: Buf) {
// Parse 'body' and mutate the trace state accordingly.
}
def emit(): Option[Buf] = {
// Read the trace state and marshal to a Buf.
}
}
// New definition. No service loading required.
private[finagle] val idCtx = new Contexts.broadcast.Key[TraceId] {
val marshalId = Buf.Utf8("com.twitter.finagle.tracing.TraceContext")
def marshal(id: TraceId): Buf = {
// Marshal the given trace Id
}
def tryUnmarshal(body: Buf): Try[TraceId] = {
// Try to marshal 'body' into a trace id.
}
}
Runtime Behavior Changes
~~~~~~~~~~~~~~~~~~~~~~~~
* finagle-mux: Mark the ServiceFactory available again if the underlying
Service is no longer available. This permits it to be closed and reused.
* finagle-mux: Rename the "lease_counter" counter to "leased" on mux clients.
Deprecations
~~~~~~~~~~~~
* finagle-core: Deprecated the mechanisms of FailureAccrual that use
factory Transformers. It's better to just use the Params to
configure the existing FailureAccrualFactory. However, if you've
actually written your own failure accrual transformer that's
significantly different, then you can do stack.replace() to swap it
in.
* finagle-memcached: Have cas() operation return false on NotFound()
state instead of throw IllegalStateException
New Features
~~~~~~~~~~~~
* finagle-core: All `Stack.Param`s used in `ClientBuilder` and
`ServerBuilder` are now publicly exposed for configuration
parity.
* finagle-mux: Drain mux servers properly, so that shutdowns can be
graceful.
* finagle-core: Introduce `Service.status` which supersedes
`Service.isAvailable`. `Service.status` is a fine-grained
health indicator. The default definition of
`Service.isAvailable` is now defined in terms of
`Service.status`; this definition will soon be made
final.
* finagle-mux: Inject bound residual paths into mux requests.
* *Request contexts.* Request contexts replace the direct use of
com.twitter.util.Local and of com.twitter.finagle.Context.
Request contexts are environments of request-local bindings;
they are guaranteed to be delimited by Finagle,
and their API admits only properly delimited binding.
They come in two flavors:
Contexts.local are always local to handling a single request;
bindings in Contexts.broadcast may be marshalled and transmitted across process
boundaries where there is protocol support.
Currently, both Thrift and Mux (and thus also ThriftMux)
support marshalled contexts.
See `com.twitter.finagle.contexts.Context` for more details.
6.23.0
------
Breaking API Changes
~~~~~~~~~~~~~~~~~~~~
* finagle-core: `c.t.f.Stackable`s maintained state about which parameters were
accessed via `get`. This was error prone and violated the assumption that `Stack`s
are immutable data structures. We removed this in favor of annotating modules with
parameters. The abstract classes for Stackables were also simplified. Now we only have
`Module` and `ModuleN` variants which are more convenient for most definitions.
Since this is an advanced API, it should not impact standard usage of finagle.
* finagle-core: Update ConcurrentRingBuffer to use ClassTag instead of ClassManifest;
rename size argument to capacity.
Deprecations
~~~~~~~~~~~~
* `ServerBuilder.stack[Req1, Rep1](mk: Stack.Params => Server[Req1, Rep1])` is
deprecated in favor of
`ServerBuilder.stack[Req1, Rep1](server: Stack.Parameterized[Server[Req1, Rep1]])`
Runtime Behavior Changes
~~~~~~~~~~~~~~~~~~~~~~~~
* `finagle`: Improve allocation semantics for uses of Buf.
6.22.0
-------
Breaking API Changes
~~~~~~~~~~~~~~~~~~~~
* finagle-core: Removed unused `com.twitter.finagle.service.ProxyService`. It wasn't
sufficiently general to be used outside of finagle, and was no longer used
in finagle.
* Removed TLSEngine, and replaced it with two, TLSClientEngine, and
TLSServerEngine, where TLSServerEngine is the same as TLSEngine, and
TLSClientEngine takes a SocketAddress instead of (). Additionally,
the Netty3TransporterTLSConfig now takes a function SocketAddress => Engine,
instead of () => Engine.
New Features
~~~~~~~~~~~~
* finagle-core: BroadcastStatsReceiver, introduce specialized implementation
* finagle-core: Introduce gauges in SummarizingStatsReceiver
* finagle-core: Introduce Transport#copyToWriter
* finagle-core: Make base Dtab used in BindingFactory a Stack.Param
* finagle-core: Proper decay in experimental ewma load metric
* finagle-core: Simplify Stack{Client, Server} and unify around them
Runtime Behavior Changes
~~~~~~~~~~~~~~~~~~~~~~~~
* finagle-core: Add support for non-URLClassloaders to LoadService
* finagle-core: clear locals before entering server dispatch loop
* finagle-core: Defer DNS Resolution in InetResolver to FuturePool
* finagle-core: for paths starting with /#/, skip rewrites where prefix is /
* finagle-core: include name resolution in tracing request span
* finagle-core: Properly wrap some IOException into ConnectionFailedException
* finagle-core: Scope InetResolver's stats properly
* finagle-http: Send "Connection: close" header while dispatcher is closing
* finagle-http: Set content length header when appropriate
* finagle-memcached: Use interruptible future for the client request readiness
* finagle-stats: Add content-type response header to JsonExporter
* finagle-thrift: Add back connection_preparation_latency stat in Thrift
* finagle-thriftmux: Record protocol as a gauge rather than a counter
Documentation
~~~~~~~~~~~~~
* finagle-core: Add Scaladocs for ChannelBufferBuf and BufChannelBuffer
* finagle-core: link to the FAQ in FailedFastException
* finagle-serversets: Defer DNS resolution for endpoints to InetResolver
* finagle-thrift{,mux}: Clarified with* deprecation warning
* Fix minor issues and missing code blocks in Finagle documentation
Optimization
~~~~~~~~~~~~
* finagle-core: GlobalFlag isn't caching the property value
* finagle-core: recursive-descent Path / NameTree / Dentry / Dtab parsers to reduce heap allocation
Bug Fixes
~~~~~~~~~
* finagle-core: Fix a deadlock in Contexts
* finagle-core: Fix breaking ABI change in SummarizingStatsReceiver
* finagle-core: Fix bug in computing array index in SummarizingStatsReceiver
* finagle-core: Fix build.properties location for maven builds
* finagle-core: Fix synchronization in LeasedFactory
* finagle-core: Fix tracing with Stack{Client, Server}
* finagle-core: Make FailedFastException an instance variable.
* finagle-core: Synchronized access to the Stackable mutable.params map
* finagle-http: Fix CookieMap.rewriteCookieHeaders()
* finagle-http: Fix the memory leak in HttpClientDispatcher
* finagle-mysql: Fix timestamp fractional seconds encoding
* finagle-mysql: Properly heed timezone when extracting TimestampValue
* mux: clear contexts after receive, not in 'finally' clause
6.21.0
------
- `finagle`: Upgrade to scala_2.10
- `finagle-core`: Add weighted address support to InetResolver.
- `finagle-core`: Adds ClientRegistry.expAllRegisteredClientsResolved
- `finagle-core`: Attach Dtab.local to NoBrokersAvailableException in filter
- `finagle-core`: Attempt to add dtab stats to all clients and servers
- `finagle-core`: Avoid SOCKS proxy for both loopback and link-local addresses
- `finagle-core`: Bind names lazily under Alt so we don't do needless lookups
- `finagle-core`: DelayedFactory to detachable implementation
- `finagle-core`: Fix a race in load balancer initialization
- `finagle-core`: Improve loadbalancer logging
- `finagle-core`: Introduce ewma load metric
- `finagle-core`: Log state for ewma load metric
- `finagle-core`: Redesign of twitter-server admin page
- `finagle-core`: Register StackClient with Path dest in ClientRegistry as evaluated against Dtab.base Problem
- `finagle-core`: Rewrote ServiceLoader to avoid creating
- `finagle-core`: SingletonPool: a single-service pool with good semantics
- `finagle-core`: Zipkin tracing for name resolution
- `finagle-core`: fix synchronization in SummarizingStatsReceiver
- `finagle-core`: reusing pool: isAvailable === underlying.isAvailable
- `finagle-docs`: A better picture for filters. (Replaces hand-drawn monstrosity.)
- `finagle-docs`: Add Scaladocs for all public exception classes in Finagle.
- `finagle-docs`: Add a section to the FAQ regarding FailedFastExceptions
- `finagle-exp`: Generify the DarkTrafficFilter problem
- `finagle-guide`: Document stabilizing serverset metrics.
- `finagle-http`: Add support for a Dtab-Local header
- `finagle-http`: Fail requests with invalid X-Dtab headers
- `finagle-http`: Fail requests with invalid X-Dtab headers
- `finagle-http`: TextualContentCompressor should compress textual Content-Type's even when containing a charset
- `finagle-mux`,thriftmux: explain why the files are named Netty3
- `finagle-mux`: Better gc avoidance flags for experimentation
- `finagle-mux`: Enable gc avoidance for parallel gc
- `finagle-mux`: Improve mux's handling of client disconnects
- `finagle-mux`: Improved Garbage Collection Avoidance Docs
- `finagle-mux`: docs and minor cleansing in Message subclasses
- `finagle-mysql`: Switches PreparedCache over to util-cache FutureCache
- `finagle-serversets`: Add support for getEphemerals ZooKeeper call
- `finagle-serversets`: Memoize getChildrenWatchOp instead of globPrefixWatchOp
- `finagle-serversets`: Reuse ObjectMapper in JSON parser.
- `finagle-serversets`: add latency metrics for ServerSet2.
- `finagle-zipkin`: Reduce allocations when tracing
6.20.0
-------
- `finagle`: Smattering of minor cleanups in util and finagle
- `finagle`: Upgrade sbt to 0.13
- `finagle`: Upgrade to Netty 3.9.1.1.Final
- `finagle-core`: Add NameTree.Fail to permit failing a name without fallback
- `finagle-core`: Add a generic DtabStatsFilter
- `finagle-core`: Add a singleton exception and a counter in WatermarkPool
- `finagle-core`: DefaultClient in terms of StackClient
- `finagle-core`: Disable Netty's thread renaming
- `finagle-core`: Fix CumulativeGauge memory leak
- `finagle-core`: Fix negative resolution in Namer.global
- `finagle-core`: Fixed ChannelStatsHandler to properly filter exceptions
- `finagle-core`: Forces finagle-core to use ipv4 network stack
- `finagle-core`: Improve `Failure.toString`
- `finagle-core`: Include path and Dtab.local in NoBrokersAvailableException
- `finagle-core`: Log exceptions caught by ChannelStatsHandler
- `finagle-core`: Make timer-based DNS resolution as default of InetResolver
- `finagle-core`: Reader and getContent symmetry
- `finagle-core`: Reduces log level for common exceptions
- `finagle-core`: Register clients centrally
- `finagle-doc`: Add fintop to companion projects list on Finagle website
- `finagle-http`: Don't emit (illegal) newlines in lengthy dtab header values
- `finagle-http`: Fix code style from an open-source contribution
- `finagle-http`: Migrate from specs to scalatest
- `finagle-kestrel`: Make transaction abort timeout configurable in MultiReader
- `finagle-mux`: Added extra client logging
- `finagle-mux`: Fix broken draining behavior
- `finagle-mux`: Improve granularity of rate to bytes/millisecond
- `finagle-serversets`: Handle errors that occur when fetching endpoints
- `finagle-serversets`: Increase ZK session timeout to 10 seconds
- `finagle-serversets`: Merge WeightedSocketAddresses with same host:port but different weight in Stabilizer
- `finagle-serversets`: Synchronize bug fixes & test coverage across ZK facades
- `finagle-swift`: Fixes pants build warning
- `finagle-thrift`: Add explicit dependency on libthrift
- `finagle-thrift`: Remove usage of java_sources, should be able to depend on it normally
6.19.0
-------
- `finagle-core`: Allow trailing semicolons in dtabs
- `finagle-core`: Rescue exceptions thrown by filter in `Filter.andthen(Filter)`
- `finagle-core`: StackClient, StackClientLike don't leak underlying In, Out types
- `finagle-doc`: Clarify cancellation
- `finagle-doc`: Fix broken link in document
- `finagle-doc`: Fix name footnote in finagle Names docs
- `finagle-http`: Buf, Reader remove Buf.Eof; end-of-stream is None
- `finagle-http`: Prepend comment to JSONP callbacks
- `finagle-http`: Removing specs from the CookieMapSpec test.
- `finagle-kestrel`: Make failFast configurable in Kestrel codec
- `finagle-mysql`: Ensure mysql specific tracing is composed.
- `finagle-mysql`: Finagle MySQL PreparedStatement accepts Value types as params.
- `finagle-serversets`: Identity Providers for Serverset2
- `finagle-thriftmux`: Add withProtocolFactory API endpoint
- `finagle-thriftmux`: Don't reuse InMemoryStatsReceiver in the same test
6.18.0
-------
- `finagle-*`: release scrooge v3.16.0
- `finagle-*`: release util v6.18.0
- `finagle-core`: Add `description` field to com.twitter.finagle.Stackable trait
- `finagle-core`: Add a Flag to turn on per-host stats
- `finagle-core`: Add a service acquisition latency stat to StatsFactoryWrapper
- `finagle-core`: Don't support empty path elements in com.twitter.finagle.Path
- `finagle-core`: Improves FailFastFactory documentation
- `finagle-core`: Make c.t.f.Failure a direct subclass of Exception
- `finagle-core`: Skip SOCKS proxy when connecting to loopback address
- `finagle-core`: Use Monitor from caller's context in DefaultTimer
- `finagle-http`: Add "Enhance Your Calm" and "Too Many Requests" HTTP status codes
- `finagle-http`: Add exp.HttpServer, which allows request limits to be configured
- `finagle-http`: Change Request#params to a memoized def
- `finagle-http`: Stream request body
- `finagle-kestrel`: Add Name-based methods for MultiReader construction
- `finagle-memcached`: Expose the client type `KetamaClient` in the `build()` API
- `finagle-mux`: GC Avoidance Algorithm
- `finagle-mux`: Hook up GC avoidance to servers
- `finagle-mux`: Move UseMux.java to the correct directory
- `finagle-serversets`: Randomizes backoff interval in ZK2
- `finagle-serversets`: Start resolution eagerly in ZK2
- `finagle-stats`: Add a stat-filtration GlobalFlag
- `ostrich`: release ostrich v9.5.2
- `user guide`: Add Google Analytics tracking code
- `user guide`: Add sections about review process and starter issues
- `user guide`: Update Finagle adopter list on user guide website
- `wily`: Add Dtab expansion
6.17.0
-------
- `finagle`: Add list of Finagle adopters
- `finagle`: Upgrade third-party dependencies
- `finagle-core`: Add `Addr.Neg` to the user guide's list of Addr types
- `finagle-core`: Added Failure support for sourcing to finagle
- `finagle-core`: ClientBuilder should turn per-host stats off by default (matching new Client building API).
- `finagle-core`: Implement DefaultServer in terms of StackServer
- `finagle-core`: Improve the Dtab API
- `finagle-core`: Prevent scoping stats with the empty-string
- `finagle-core`: Rolls up the /tries scope properly
- `finagle-core`: ServerStatsReceiver and ClientStatsReceiver can now update their root scope
- `finagle-core`: fix race case in DelayedFactory
- `finagle-core`: introduce AbstractResolver
- `finagle-core`: remove need for hostConnectionLimit when using ClientBuilder#stack
- `finagle-core`: widen to type for ServerBuilder#stack
- `finagle-core`: widen type of ClientBuilder#stack
- `finagle-doc`: Removed a line from conf.py
- `finagle-http`: DtabFilter should always clear dtab headers
- `finagle-http`: add HOST header for CONNECT method
- `finagle-http`: scala 2.10 compatible tests
- `finagle-memcached`: filter out one more cancelling request exception in failure accrual
- `finagle-memcached`: remove empty test
- `finagle-mux`: Improve Mux server close behavior, control messages to non-Mux clients
- `finagle-mux`: Marked a gc test as flaky
- `finagle-mux`: Modifies MuxService to essentially be a Service[Spool[Buf], Spool[Buf]] Problem
- `finagle-mux`: Rm ClientHangupException in favor of CancelledRequestException
- `finagle-mysql`: Retrieving a timestamp from the DB nw creates a timestamp in UTC
- `finagle-mysql`: fix for issue where time was not being returned in UTC for binary protocol
- `finagle-serversets`: Prevent gauges from being garbage collected
- `finagle-thrift`: Blackhole control messages sent to non-mux Thrift clients
- `finagle-thriftmux`: Add per-connection protocol-usage stats
- `finagle-thriftmux`: Add stats to identify ThriftMux clients and servers
- `finagle-thriftmux`: Propagate Contexts from non-ThriftMux clients
- `finagle-thriftmux`: add ClientBuilder#stack compatibility and make APIs symmetric
- `finagle-thriftmux`: pass along ClientId with ClientBuilder API
6.16.0
-------
- `finagle-core`: Add Stack#remove
- `finagle-core`: Add a copy constructor to Stack{Client, Server}
- `finagle-core`: Fixed a typo in scaladoc https://github.com/twitter/finagle/pull/264
- `finagle-core`: Implement ClientBuilder in terms of StackClient
- `finagle-core`: Invert the `cancelOnHangup` value passed to MaskCancelFilter.Param
- `finagle-core`: Liberate Failure
- `finagle-core`: Log all services loaded by c.t.finagle.util.LoadService
- `finagle-core`: Minor c.t.app.ClassPath/c.t.f.util.LoadService cleanup
- `finagle-core`: Properly close sockets on shutdown
- `finagle-core`: Properly scope stats by label in Stack{Client,Server}
- `finagle-core`: Remove `Stack{Server,Client}.transformed`
- `finagle-core`: Scoped the RollupStatsReceiver carefully
- `finagle-core`: Thread through Codec#newClientTransport in ClientBuilder
- `finagle-core`: Update to netty-3.9.1.Final
- `finagle-example`: Add Java Thrift client and server
- `finagle-http`: Add Csv,Xls,Zip to finagle MediaType
- `finagle-http`: Adds tls support to finagle 6 apis
- `finagle-http`: Set the response content-length header to 0 in ExceptionFilter.
- `finagle-kestrel`: Add Thrift support to Kestrel MultiReader in Finagle-Kestrel
- `finagle-mux`: Cleaned up build information
- `finagle-mux`: GC Avoidance primitives
- `finagle-mux`: Move exp.MuxClient and exp.MuxServer
- `finagle-mux`: Record tracing info when Mux is enabled
- `finagle-mux`: Refactor Session to make closing a Session uniform
- `finagle-mux`: Render mux clients leasable
- `finagle-redis`: Added support for redis MOVE command.
- `finagle-serversets`: Reduce the number of intermediate datastructures
- `finagle-thriftmux`: Add ThriftMux.withClientId
- `finagle-thriftmux`: Maintain legacy client and server names
- `finagle-{core,thrift,mux}`: Clean up contexts, delimit Locals
6.15.0
-------
- `finagle-core`: Fixed DefaultClient to use the base close method
- `finagle-core`: Fix a race condition when closing in DefaultServer
- `finagle-serversets`: memoize path parses in ServerSet2
- `finagle-mux`: remove references to org.jboss.netty.util.CharsetUtil
- `finagle-http`: create HttpTransport in codec
- `finagle-http`: fix basic authentication with special characters
- `finagle-http`: temporary fix for prematurely expiring streaming responses
- `finagle-core`: don't discard outstanding readq elements in ChannelTransport
- `finagle-core`: Add Socks Proxy Authentication support
- `finagle-doc`: fix image size in client stack figure.
- `finagle-stats`: unregister cumulative gauges when all references have been collected
- `finagle-core`: fix truncation in ChannelBufferBuf#slice()
- `finagle-stats`: upgrade to the latest version of metrics
- `finagle-stats`: Enable cumulative gauges in MetricsStatsReceiver
- `finagle-mysql`: Move mysql testing out of finagle-mysql
- `finagle-serversets`: serverset namer - synthesize nodes for each endpoint
- `finagle-http`: fix HttpClientDispatcher
- `finagle-core`: transport should be considered closed if it is failed
- `finagle-core`: Improve the failure for cancelled requests in the ClientDispatcher
- `finagle-core`: LocalScheduler - add LIFO option
- `finagle-core`: don't join after interrupt in Exitguard.Unguard()
- `finagle-serversets`: Replaces Op with Activity Problem
- `finagle-mysql`: implement builder using StackClient.
- `finagle-core`: Make LoadService not fail if a sub-dir is not readable
- `finagle-core`: Make com.twitter.finagle.Name an ADT
- `finagle-core`: curry `newDispatcher` in Stack{Client, Server}
- `finagle-thriftmux`: Add a flag for enabling ThriftMux
- `finagle-doc`: improved rastering of logos
- `finagle-core`: Retry on com.twitter.util.TimeoutException
- `finagle-core`: introduce ForkJoinScheduler
- `finagle-serversets`: facade for ZooKeeper libraries
6.14.0
-------
- `finagle-*`: Add com.twitter.io.Charsets and replace the use of org.jboss.netty.util.CharsetUtil
- `finagle-benchmark`: Fix caliper failures due to new guava
- `finagle-core`: Disable Monitor usage of in Netty3Listener
- `finagle-core`: Enforce usage of c.t.finagle.util.DefaultLogger
- `finagle-core`: Fix a Netty3Timer capitalization bug
- `finagle-core`: Fixed unresolved promises in client dispatcher
- `finagle-core`: Implement ServerBuilder in terms of StackServer.
- `finagle-core`: Introduce 2-level caching in the name interpreter
- `finagle-core`: Introduce Failure interface (internally)
- `finagle-core`: Introduce StackServer
- `finagle-core`: Introduce a flag for debug tracing
- `finagle-core`: Make StackClient symmetric to StackServer
- `finagle-core`: Parse names into trees; introduce separate evaluation.
- `finagle-core`: Remove redundant Netty3Timer param def
- `finagle-core`: Resolver.resolve throws IllegalArgumentException on logical name
- `finagle-core`: RetryPolicy filter, limit, combine
- `finagle-core`: Thread through NullReporterFactory in ServerBuilder.
- `finagle-core`: Use DefaultLoadBalancerFactory
- `finagle-core`: Use JDK6-friendly RuntimeException constructor in Failure
- `finagle-doc`: README refresh
- `finagle-doc`: Refresh client stack docs
- `finagle-memcached`: Ketama memcache: accept weighted addresses
- `finagle-mux`: Add server-side Stack wiring for Mux and ThriftMux
- `finagle-mysql`: Proper prepared statement support.
- `finagle-serversets`: Add Read-Only ZK support to zk2 Resolver
- `finagle-serversets`: Zk2: deliver events serially in their own thread
- `finagle-thrift`: workaround libthrift TBinaryProtocol.writeBinary bug
- `finagle-zipkin`: Include service name in all traces
6.13.1
~~~~~~~
- `finagle-core`: Case insensitive Dtab headers in HTTP codec
- `finagle-core`: Introduce Stack.Params#contains
- `finagle-docs`: address small style nits
- `finagle-http`: support reading params in content body for HTTP methods other than POST and PUT
- `finagle-memcached`: add ketamaclient initial readiness before the first request
- `finagle-serversets`: Disable retry behavior but turn exception into negative resolution.
- `finagle-serversets`: Stabilizer: don't consider Pending update successful
- `finagle-stats`: use java.lang.Double in addGauge()
- `finagle`: Add `cause` Throwables for all ConnectionFailedExceptions
- `finagle`: Fix Travis-CI integration.
- `finagle`: Swap Stack.Node and Stack.Leaf args in toString formatting
- `finagle`: Update 3rdparty library versions
- `finagle`: Upgrade birdcage to guava 16
- `finagle`: upgrade ostrich to 9.4.2
- `finagle`: upgrade util to 6.13.2
6.13.0
~~~~~~
- `finagle-core`: ForkJoin scheduler: first draft
- `finagle-doc`: Update URL to Finagle blog post. Motivation: Outdated URL
- `finagle-http`: compress text-like content-types by default
- `finagle-memcached`: Mark test "not migrating yet" as flaky
- `finagle-mux`: don't delegate empty dtabs
- `finagle-mysql`: Better failure handling for the dispatcher
- `finagle-ostrich4`: Make OstrichExporter compatible with Ostrich CommandHandler.
- `finagle-redis`: Add SINTER command to redis client
- `finagle-redis`: Allow an empty string as a hash field value
- `finagle-redis`: Fixed the empty string issue of MBULK_REPLY
- `finagle-serverset`: ServerSets2: reset value on SyncConnected
- `finagle-stats`: Upgrade metrics dependency to the latest version.
- `finagle-thrift`: Do not rely on ThreadLocal'd ClientIds in TTwitterFilter
- `finagle-thrift[mux]`: Reintroduce ClientIdContext by default
- `finagle-zipkin`: TraceId invariance
- `finagle/S2`: introduce address stabilization, stats
- `finagle`: Add Mux and ThriftMux Clients based on com.twitter.finagle.Stack
- `finagle`: fix dependency problem with multiple version of serversets
- `finagle`: Fix the sbt doc generation (and tests)
- `finagle`: upgrade Netty to 3.8.1
- `finagle`: upgrade ostrich to version 9.4.0
- `finagle`: upgrade util to version 6.13.0
6.12.2
~~~~~~
- `finagle`: release scrooge version 3.12.3
- `finagle-exception`: Drop scrooge in favor of pre-generated Thrift Java source code.
- `finagle-zipkin`: Drop scrooge in favor of pre-generated Thrift Java source code.
6.12.1
~~~~~~
- `finagle`: release ostrich version 9.3.1
- `finagle`: release util version 6.12.1
- `finagle`: Upgrade everyone to the new c.t.common.server-set
6.12.0
~~~~~~
- `finagle-core`: Add a `ServerBuilder.safeBuild(ServiceFactory)` method for Java compatibility
- `finagle-core`: Add basic Scaladocs for all Filters and Services
- `finagle-core`: close Name Var observation on service close
- `finagle-core`: com.twitter.finagle.Stack: initial version
- `finagle-core`: Fix race condition in server dispatcher draining state machine
- `finagle-core`: low hanging fruit
- `finagle-core`: Make `Resolver.evalLabeled` private[finagle]
- `finagle-core`: Option to enable thread pool scheduler in finagle"
- `finagle-core`: Record Finagle version in tracing information
- `finagle-core`: Remove a long-forgotten java file
- `finagle-core`: Separate stats scopes for service-creation and request failure
- `finagle-core`: TimeoutFactorySpec => TimeoutFactoryTest
- `finagle-core`: Users don't get NPE on directories without permissions
- `finagle-core`: Weights, weighted load balancer, memoization
- `finagle-core`: Write `Throwables.mkString` in terms of ArrayBuffer instead of Seq
- `finagle-doc`: How do I change my timeouts in the Finagle 6 APIs?
- `finagle-example`: Port finagle-example thrift to new style APIs
- `finagle-http`: Add Dtab filter in RichHttp
- `finagle-http`: enable tracing on finagle 6 http api
- `finagle-kestrel`: Fix match-exhaustiveness issue in `DecodingToResponse.parseResponse`
- `finagle-kestrel`: Use Var[Addr] as underlying cluster representation
- `finagle-memcache`: Add a parameter to disable host ejection from KetamaFailureAccrualFilter
- `finagle-memcached`: include response type for IllegalStateException
- `finagle-mux`: Adds lease support to mux clients
- `finagle-mysql`: Embeddable MySql support for Unit/Integration Testing in Finagle-MySql
- `finagle-serversets`: prevent MatchError when resolving zk path + endpoint
- `finagle-serversets`: Use ephemeral ports and `Var.sample` in tests
- `finagle-serversets`: Use the watch method instead of the now deprecated monitor method
- `finagle-tracing` /zipkin: remove some allocations
- `finagle`: update dependencies com.twitter.common*
- `finagle`: update ostrich to 9.3.0
- `finagle`: update util to 6.12.0
- `finagle`: Use a more descriptive message for when client name resolution is negative
6.11.1
~~~~~~
- `finagle-core`: Masks cancellation on PipeliningDispatcher
- `finagle-doc`: Fix finagle-websocket link on Finagle docs website.
- `finagle-http`: Http client dispatcher
- `finagle-kestrel`: Add abort command to kestrel client
6.11.0
~~~~~~
- `finagle-core`: Add a "tries" scoped StatsFilter to ClientBuilder.
- `finagle-core`: Allow clean shutdown for insoluble address in DelayedFactory.
- `finagle-core`: Better exception message for resolver not found issue.
- `finagle-core`: Introduce P2CLB: O(1), fair-weighted, concurrent load balancer
- `finagle-core`: Refactor dispatchers.
- `finagle-core`: Set interest ops when reading in ChannelTransport.
- `finagle-core`: Skip hostStatsReceiver rollup if it's null in DefaultClient.
- `finagle-core`: Untyped ChannelTransports.
- `finagle-example`: Use new `request.headers()` Netty API.
- `finagle-http`: Proper streaming dispatch.
- `finagle-kestrel`: Make ReadHandle an abstract class for better Java compatibility.
- `finagle-serversets`: Fix com.twitter.common.zookeeper.server-set dependency discrepancy.
- `finagle-serversets`: Introduce ServerSet2.
- `finagle-serversets`: Weight/priority vectors in ServerSet2.
- `finagle-stream`: Use dispatch logic.
- `finagle-stress`: Use BridgedThreadPoolScheduler.
- `finagle-thrift`: Add TFinagleBinaryProtocol
- `finagle-thriftmux`: Drop dependency on finagle-ostrich4.
- `finagle-thriftmux`: Remove scrooge2 dependency.
- `finagle`: Use Future.before.
- `finagle`: adds a section to the FAQ explaining the com.twitter.common situation.
- `finagle`: s/setValue(())/setDone()/g
6.10.0
~~~~~~
- `finagle-core`: Fix ServiceTimeoutException naming.
- `finagle-core`: Increase default tcpConnectTimeout to 350ms.
- `finagle-core`: Remove memory leak for never satisfied promises in DelayedFactory.
- `finagle-memcached`: Add ClientBuilder APIs that use Name instead of Group.
- `finagle`: Daemonize threads in ClientBuilders used in finagle.
6.9.0
~~~~~
- `finagle-core`: Avoid creating a new 'NoStacktrace' array for each exception.
- `finagle-core`: Better support for negative Addr resolution in StabilizingAddr.
- `finagle-core`: Make Dtab.base changeable.
- `finagle-core`: Move mask cancel filter over to Future#mask.
- `finagle-exp`: New warmup filter.
- `finagle-ostrich4`: Deprecate Netty methods.
- `finagle-serversets`: Better handling of permission exceptions in ZkResolver.
- `finagle-testers`: Small latency evaluation framework.
- `finagle`: Adhere to scala 2.10 pattern matching strictness.
6.8.1
~~~~~
- `finagle`: Upgrade ostrich to 9.2.1
- `finagle`: Upgarde util to 6.8.1
- `finagle`: Upgarde scrooge to 3.11.1
6.8.0
~~~~~
- `finagle-serversets`: Higher fidelity addrs from ZK We do the best we can with the current server set implementation.
- `finagle-mysql`: better type support
- `finagle-http`: Allow Integer to extract negative number
- `finagle-redis`: Decode nested multi-bulk replies
- `finagle-redis`: Allow expirations in the past
- `finagle-core`: bump Netty to 3.8.0.Final
- `finagle`: Return empty string when resolving an unlabeled address
- `finagle`: Don't re-scope StatsReceivers per request failure
- `finagle-thrift`: Unconditionally set TraceId and ClientId on servers
- `finagle-core`: Take -com.twitter.server.serversetZkHosts flag (for tunnelling)
- `finagle-native`: tomcat-native-1.1.27
- `finagle-mysql`: fix readLengthCodedBinary to read longs
- `finagle-testers`: library for integration testing of finagle services
- `finagle`: scaladoc warning cleanup
- `finagle-doc`: documented all of the stats in finagle-core
- `finagle-serversets`: bump server-set dependency to 1.0.56
- `finagle-stats`: adds a cautious registration to HttpMuxer / adds a default metrics endpoint to twitter-server
- `finagle-core`: verifies that statsfilter has the correct behavior
- `finagle-serversets`: Add support for parsing a !shardId on the end of a serverset address
- `finagle-http`: Use Reader for streaming
- `finagle-core`: no longer makes an anonymous exception in DefaultClient
- `finagle-core`: Using system class loader does not work when run inside sbt
- `finagle-core`: add pool_num_waited counter to WatermarkPool
- `finagle-core`: Protocol support for Wily: HTTP, thrift, mux (& thus thriftmux).
- `finagle-core`: respect standard socksProxyHost / socksProxyPort properties in ClientBuilder and Netty3Transporter default args
- `finagle-core`: buffers requests until Var[Addr] is in a ready state
- `finagle-core`: Add putLong and getLong functions to util.ByteArrays
- `finagle-core`: don't blow up if we don't have a resolvable host name
- `finagle-core`: rm allocation in RichChannelFuture.apply's operationComplete
- `finagle-core`: remove Var.apply; introduce Var.sample
- `finagle-thriftmux`: Support ClientIds at the protocol level
- `finagle-kestrel`: memory allocation improvements
- `finagle-http`: allow PUT requests to use RequestParamMap.postParams
- `finagle-memcached`: more performance and less allocations in Decoder
6.7.4
~~~~~
- `finagle-core`: Fail ChannelTransport read queue before closing the connection
- `finagle-mux`: Add session for mux message passing and bidirectional RPC
- `finagle-zipkin`: Depend on scrooge-core instead of scrooge-runtime
6.7.2
~~~~~
- `finagle-core`: LoadService: skip empty lines
- `finagle-core`: Improve GC profile of Var and Group
- `finagle-core`: added a simple defaultpool test to show how it works + more docs
- `finagle-core`: removes commented out casting filter
- `finagle-mysql`: move protocol into a dispatcher and port to new style apis.
6.7.1
~~~~~
- `finagle-*`: Tagging various tests as flaky
- `finagle-*`: Fix and reenable some formerly-flaky tests Now that Time.withXXXX is threadsafe
- `finagle-*`: Move Var to util
- `finagle-*`: Provide generic request contexts
- `finagle-*`: Use scrooge3 and up-to-date scrooge-maven-plugin settings
- `finagle-*`: upgrade Netty to 3.7.0.Final
- `finagle-core`: Add UnwritableChannel stat to ChannelStatsHandler
- `finagle-core`: Add a test for Proc exception-swallowing
- `finagle-core`: Better interface for RetryPolicy
- `finagle-core`: Ensure FIFO ordering when delivering updates to StabilizingGroup
- `finagle-core`: Export a health stat in StabilizingGroup
- `finagle-core`: Fix a race condition in ListeningSever.announce and don't announce 0.0.0.0
- `finagle-core`: Fix sourcing for SourcedExceptions
- `finagle-core`: Group: communicate via Var[Set[T]]
- `finagle-core`: Improve HeapBalancer req distribution when N=2
- `finagle-core`: Introduce staged names
- `finagle-core`: Let the number of cores be specified on the command line
- `finagle-core`: Make socket writable duration stats more useful
- `finagle-core`: Migrate RetryingFilter tests from specs to scalatest
- `finagle-core`: Move the connections gauge into ChannelStatsHandler for GC
- `finagle-core`: Reuse a single exception instance in ServerDispatcher
- `finagle-core`: Update com.twitter.finagle package documentation
- `finagle-doc`: Add Client/Server Anatomy to docs
- `finagle-doc`: Link to "Your Server as a Function"
- `finagle-http`: Proper CORS implementation on Finagle
- `finagle-http`: SPNEGO http auth (for Kerberos) with an example implementation for internal services
- `finagle-memcached`: Exclude CancelledRequestException and CancelledConectionException or cache client failure accrual
- `finagle-memcached`: Read key remapping config from ZooKeeper
- `finagle-memcached`: ZK based cache node group implementation
- `finagle-redis`: SRandMember, send command without count when None
- `finagle-serversets`: Mark ZookeeperServerSetCluster as deprecated
- `finagle-thrift`: Add a request context for ClientId
- `finagle-thrift`: Set the client id in thriftmux
6.7.0
~~~~~
Release process failed. Rolled forward to 6.7.1.
6.6.2
~~~~~
- `finagle-core`: Configurable loadBalancer for ClientConfig
- `finagle-core`: Fix the memory leak due to the GlobalStatsReceiver
- `finagle-core`: Inet util, bind to all if no host is provided
- `finagle-core`: Make Future.never a val instead of a def
- `finagle-memcached`: Fix tracing ClientRecv timestamp
- `finagle`: New ostrich version
6.6.0
~~~~~
- `finagle-core`: Add a RetryPolicy constant for retrying on ChannelClosedExceptions.
- `finagle-core`: ChannelSnooper: Print exceptions via Logger
- `finagle-core`: Finagle client/server APIs: s/target/addr/g
- `finagle-core`: Introduce swappable schedulers, ThreadPool scheduler.
- `finagle-core`: Replacing ostrich-specific Stats with StatsReceiver interface
- `finagle-core`: Tests for BroadcastStatsReceiver
- `finagle-core`: adding service name to a service exception
- `finagle-core`: fix file mispelling for StabilizingGroup.scala
- `finagle-core`: fix memory leak in Group#fromCluster
- `finagle-core`: refactor use of InetSocketAddress group and deprecate use of cluster in cache client
- `finagle-http`: Add Access-Control-Expose-Headers to Finagle CORSFilter
- `finagle-http`: Fix Path comments, improve sbt definition
- `finagle-http`: Http connection manager: close synchronously
- `finagle-http`: Make behavior of HttpMuxer match its javadoc
- `finagle-http`: Mix in Proxy with HttpMessageProxy
- `finagle-http`: bump request/response sizes to 5 megs
- `finagle-memcached`: Memcached Ketama Client Builder: Add group support that is compatible with oldlibmemcached , creates CacheNodes with ipAddress instead of hostname.
- `finagle-memcached`: Update jackson to 2.2.2
- `finagle-memcached`: allow custom key in ketama client
- `finagle-memcached`: better exception messages for invalid keys
- `finagle-memcached`: migration client
- `finagle-ostrich4`: improve perf of Counter and Stat
- `finagle-swift`: experimental swift-based thrift server and client An experimental annotation based proxy and dispatcher for thrift, using Facebook???s swift for serialization.
- `finagle-thrift`: breaking out finagle, higher-kinded-type interface
- `finagle-thrift`: fix finagle-thrift rich to work with scrooge 3.6.0
- `finagle-thrift`: move scrooge-runtime to scrooge
- `finagle-thrift`: remove use of deprecated generated ostrich ThriftServer
- `finagle-zipkin`: Add newlines to scribe message
- `finagle-zipkin`: Use better metric names for error stats
- `finagle-zipkin`: optimize scribe logging to not need slf4j
6.5.2
~~~~~
- finagle-ostrich4: set stats export URI to stats.json
- finagle-core: Introduce StabilizingGroup which cautiously removes items from a Group
- finagle-core: Add group method to ClientBuilder
- finagle-core: Add service/client name to ServiceTimeoutException
- finagle-mux: Don't allocate headers via direct buffers
- finagle-http: Implement missing modifiers in Http case class
- finagle-memcache: added support for twemcache commands
6.5.1
~~~~~
- `finagle-http`: Move routing by path and method function to RoutingService
- `finagle-redis`: Switching from Strings to ChannelBuffers for Scored Zrange commands
- `finagle-stats`: Upgrade metrics to 0.0.9
- `finagle-stream`: Revert "Stream interface (i.e. chunked) for HTTP message bodies"
- `finagle`: Fix documentation about Java & Future
- `finagle`: Refresh OWNERS/GROUPS in all subdirectories
- `finagle`: Upgrade Netty version to 3.6.6.Final
- `finagle`: Upgrade ostrich version to 9.1.2
- `finagle`: Upgrade util version to 6.3.7
- `finagle-redis`: Implement new SET syntax introduced in redis 2.6.12
- `finagle-core`: Open connection threshold et al
6.5.0
~~~~~
- `finagle-core`: fix a bug in Trace.unwind in ruby
- `finagle-core`: speed up tracing when a trace is unsampled.
- `finagle-redis`: implement PEXPIRE/PEXPIREAT/PTTL
- `finagle-redis`: Make the multiple argument version of zAdd a separate method.
- `finagle-serverset`: create a ZkAnnouncer
- `finagle-thriftmux`: make thriftmux server back compatible with thrift framed codec
- `finagle-zipkin`: Performance improvement for finagle-zipkin
- `finagle`: Gizzard: Some followup deps alignment to fix deployment classpath issues
- `finagle-memcached`: KetamaClient based on finagle-6 API
- `finagle-exception`: unique namespace for scribe
- `finagle-thrift`: Add scrooge3 support
- `finagle`: bump sbt util/finagle version
- `finagle`: Updating owner list
- `finagle`: Upgrade util to 6.3.6 and scrooge-runtime to 3.1.2
6.4.1
~~~~~
- `finagle-http`: CookieMap instead of CookieSet
- `finagle-memcached`: remove items stats test since twemcache does not carry those
- `finagle-http`: don't choke on HEAD requests
- `finagle-core`: ReusingPool: fix race between setting Future.never and initiating connect
- `finagle-thriftmux`: also release services
- `finagle-http`: Use the correct dispatcher for RichHttp and new API
- `finagle-exception`: a loadable exception reporter
- `finagle-core`: make global flags consistently camelCase
- `finagel-http`: enable tracing by default for Http
- `finagle-http`: Call super method only if response is not chunked
- `finagle-core`: Tracing changes to annotate both client and server ip addresses
- `finagle-http`: Stream interface (i.e. chunked) for HTTP message bodies
- `finagle-core`: get a resolver instance contained in the main Resolver
- `finagle-mux`: fix TagMap.iterator
- `finagle-mdns`: Adding project to sbt
- `inagle`: Fix doc
- `finagle-mysql`: refactor endec into proper fsm
- `finagle`: Update sbt project for (util, ostrich, finagle)
6.4.0
~~~~~
- `finagle-core`: Add unmanaged cache pool cluster
- `finagle-core`: Always enable TracingFilter even when no tracers are used.
- `finagle-core`: cache the cancelled connections in WatermarkPool instead of CachingPool
- `finagle-core`: Fix behavior of proxy forwarding in StatsReceiver
- `finagle-core`: Fix usage of RollupStatsReceiver in StatsFactoryWrapper.
- `finagle-core`: Generalize LoggingFilter
- `finagle-core`: HeapBalancer: fix handling of unavailable nodes
- `finagle-core`: Properly synchronize concurrent access to ProxyService state.
- `finagle-core`: Refactor Heapbalancer, remove usage of per host statsReceiver.
- `finagle-core`: share worker pools between server and client
- `finagle-exception`: Fix sourceHost supplied to chickadee exception reporter
- `finagle-http`: Add HttpConnectHandler and HttpClientCodec in the correct order when setting up an HTTP proxy client.
- `finagle-http`: add Response(status)
- `finagle-http`: EncodeBytes/decodeBytes for Request
- `finagle-http`: Refactor HeaderMap/ParamMap
- `finagle-memcache`: change to use consistent way to provide failure accrual params
- `finagle-memcached`: Propagating error message from server to client
- `finagle-memcached`: support for configuring numReps in KetamaClientBuilder
- `finagle-mux`: convert tests to use ScalaTest
- `finagle-mysql`: Ability to deal with non-ascii utf-8 characters
- `finagle-mysql`: Add ability to pass StatsReceiver to builder
- `finagle-mysql`: adds support for latin1_bin, paves the way for more charsets.
- `finagle-mysql`: Encode all the given the error information in the ServerError
- `finagle-mysql`: Fix improper use of ServiceFactory in Client
- `finagle-redis`: Fix byte encoding problem with Z(Rev)Rank
- `finagle-redis`: fixing Nil values in MBulkReplies
- `Finagle-zipkin`: decoupled sampling logic from ZipkinTracer to make a reusable SamplingTracer
- `finagle-zipkin`: Improve zipkin trace sampling
- `finagle-zipkin`: make ZipkinTracer loadable
- `finagle`: Document metrics
- `finagle`: Force service loader to return a concrete collection
- `finagle`: Refactor Future#get to Await.result
- `finagle`: Upgrade jackson to 1.9.11
- `finagle`: Upgrade ostrich to 9.1.1
- `finagle`: Upgrade util to 6.3.4
6.3.0
~~~~~
- `finagle`: Upgrade util to 6.3.0
- `finagle-thrift`: SocketAddress when serving an iface
- `finagle-core`: Specify DefaultTimer when creating a ChannelFactory
- `finagle-core`: DefaultClient/Server: Do not add TracingFilter if NullTracer is used
6.1.4
~~~~~
- `finagle-zipkin`: tracing improvements
- `finagle`: Upgrade util to 6.2.5
6.1.3
~~~~~
- `finagle-core`: Add BroadcastCounter and BroadcastStat, refactor Broadcast and Rollup Receiver.
- `finagle`: update sbt, add finagle-exp
- `finagle-doc`: Add a FAQ, add an entry about CancelledRequestExceptions
- `finagle-core`: Add client support for proxies that support HTTP CONNECT, such as squid.
- `finagle-doc`: A few wording fixes in Sphinx doc templates.
- `finagle-core`: StatsFilter: Check for WriteException-wrapped backup-request losers
- `finagle-mysql`: bug fixes
- `finagle`: Update sbt project definition
- `finagle-core`: Introduce DefaultTracer that load available Tracers via LoadService + Fix equality with NullStatsReceiver
- `finagle-core`: CachingPool: Do not schedule timer tasks if ttl is Duration.Top
6.1.2
~~~~~
Released 2013/03/21
- `finagle`: Fix flakey tests
- `finagle`: fix sbt build
- `finagle`: Upgrade util to 6.2.4
- `finagle-core`: Fix reporting bug for pending reqs
- `finagle-core`: Move Disposable/Managed to util
- `finagle-core`: Use Future.Nil
- `finagle-doc`: Improve, add Matt Ho's talk.
- `finagle-exp`: Add BackupRequestFilter, new backup request filter using response latency quantiles
- `finagle-http`: Avoid URISyntaxException
- `finagle-memcached`: Add Replication Cache Client
- `finagle-mysql`: Make prepareAndExecute and prepareAndSelect useful again.
- `finagle-mysql`: Make sure we are properly managing prepared statement
- `finagle-mysql`: Move interfaces outside of protocol package
- `finagle-redis`: Moved redis server classes from private to public
- `finagle-thrift`: fix 2.10 build