forked from airlift/airlift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
453 lines (341 loc) · 15.3 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
* 0.99
- Java 8 is now required
- Support JSON serialization of Java 8 types
* 0.98
- Expose JettyHttpClient dump methods to JMX
- Make HyperLogLog.addHash public
* 0.97
- Add AsyncSemaphore concurrent utility
- Add /v1/jmx/mbean/{objectName}/{attributeName} to get a single MBean attribute value
* 0.96
- Add AbstractConfigurationAwareModule for accessing config at binding time
- Upgrade to Airbase 28
- Upgrade to Guava 18.0
- Remove server archetype builders
- Remove deprecated AsyncHttpClient and bindAsyncHttpClient()
- Un-deprecate discovery.uri config property
- Show stack traces in HTTP error responses
* 0.95
- Add AsyncResponseHandler utility for building async HTTP responses
- Add Add Announcer.forceAnnounce() and ServiceSelector.refresh()
- Add more utility methods to Closeables
- Name and group Jetty HTTP client threads
- Always use daemon threads in HTTP client
- Add getResponseBytes() and getResponseBody() to FullJsonResponseHandler
- Change Duration.nanosSince() convert to most succinct unit
* 0.94
- Add min/max validators for DataSize
- Allow JettyHttpClient to configure maxRequestsQueuedPerDestination
- Add Jersey AsyncContextDelegateProvider implementation
- Upgrade to Airbase 26
- Always remove GZIP handler from JettyHttpClient
- Switch BoundedExecutor queue to ConcurrentLinkedQueue
* 0.93
- Add JAX-RS mapper for Smile encoded data
- Set thread context class loader in thread factories
* 0.92
- Upgrade to Jersey 2.9.1
- Add JaxrsBinder for explicit resource binding
- Add JaxrsModule constructor parameter to require explicit bindings
- Add missing synchronization on DecayCounter.merge
* 0.91
- Change packaging to not include zip file dependencies
* 0.90
- Add AbstractEventClient
* 0.89
- [Bug] Fix inadvertent masking of errors when detecting jmx agent
- Allow TimeStat unit to be specified at instantiation
- Add BoundedExecutor
* 0.88
- Add HyperLogLog
- [Bug] Max response size in HttpClient was hard-coded
- Optimize buffer management in HttpClient response handler
- Remove GZIP handler from HttpClient
- Fix failing unit tests in Java 8
* 0.87
- Upgrade to Jetty 9.1.3
- [Bug] Expose HttpClient stats via JMX
- Add support for IPv6 addresses to HttpUriBuilder
* 0.86
- Upgrade to Jetty 9.1.2
- Added new JettyHttpClient
- Removed ApacheHttpClient, StandaloneNettyAsyncHttpClient and NettyAsyncHttpClient
* 0.85
- [Bug] Handle locales correctly in Duration and DataSize
- [Bug] Shutdown discovery client executor using LifeCycle
- Upgrade to Guava 16.0.1
- Add validation for nodeId
- Defunct http-server.ip and jetty.ip
- Defunct all legacy HTTP server properties
- Add TestingTicker to testing module
- Capture log messages from commons-logging
- Allow using resources with TestingHttpServer
- Use Guava TypeToken instead of Guice TypeLiteral for JsonCodec
* 0.84
- Add decayed total to Distribution
- Add NOTICE file to airlift distribution tar file if present in source tree
* 0.83
- Upgrade to Guava 15.0
* 0.82
- [Bug] Launch processes from the data directory
* 0.81
- [Bug] Ignore IOException in Closeables.closeQuietly()
- Always return local announcements from service selectors
- Add merge support to CounterStat and DecayCounter
* 0.80
- [Bug] Fix issue in launcher when inspecting etc and plugin symlinks
- [Bug] Fix JSONP support in jaxrs for generic types (like collections)
- [Bug] Fix logging of configs with multiple independent bindings
- Move the HTML user interface for JMX to /v1/jmx
- Don't try to start JMX agent if already running
- Add 1,5,10, and 25 percentiles to Distribution
- Add manual percentile specification to Distribution getPercentiles
- Add byte array methods for JsonCodec
- Change DataSize toString to round to two decimal places
* 0.79
- Replace custom jmx agent with jdk's
- Defunct jmx.rmiserver.hostname property
- Add additional Logger methods for literal messages
- Update RequestStats to use DistributionStat instead of MeterStat
- Deprecate TimedStat and introduce TimeStat
- Add ConfigurationAwareProvider interface to implement custom
configuration providers
- Roll and compress the http request log daily
- [Experimental] Add management wrapper for thread pool executor
- New python-based launcher
* 0.78
- Redesign HttpClient exception handling
- Backwards incompatible change to Duration to align with DataSize
- Bind to localhost when using TestingNodeModule
- Validate discovered address in NodeInfo
- Add Discovery ServiceSelectorManager for forced refreshes
- [Bug] In Discovery retry quicker after a failure
* 0.77
- Implemented QuantileDigest merging
- Added methods for serializing and deserializing QuantileDigest
- Allow adding negative values to QuantileDigest
- Fix handling of missing content type for JSON http responses
* 0.76
- Rack server support has been moved to a separate project: airlift-rack
- Added TestingHttpClient to simplify testing
* 0.75
- Add "X-Content-Type-Options: nosniff" header to all json responses to prevent
broken browsers from rendering the json as html, which is a potential XSS
vulnerability
* 0.74
- Remove experimental from all artifact names
- AsyncHttpClient (Netty based) now shares I/O pools by default. To get a
private IO pool, use withPrivateIoThreadPool() when binding the client.
The pools running user code are still per-client.
* 0.73
- [BUG] Always notify http response handler of errors
- Properly name http client threads
- Add properties to control number of Netty http boss and worker io threads
- Add AsyncHttpResponseFuture with state method for debugging
* 0.72
- Event client supports multiple backend implementations simultaneously
- Move logging management code from log module to new log-manager module
- Drop jax-rs dependencies in clients
- [Bug] launcher would sometimes create empty pid file which resulted in "kill 0" being executed
* 0.71
- JMXAgent now uses NodeInfo to find IP address to bind to.
- Use airbase to build.
- Upgrade to Jetty 8.1.9
- Upgrade to Guava 13.0.1
- Upgrade to Apache BVal 0.5
- Upgrade to slf4j 1.7.2
- Upgrade to logback 1.0.9
- Upgrade to Jersey 1.17
- Upgrade to Joda Time 2.1
- Upgrade to JCommander 1.30
- Upgrade to MySQL Connector 5.1.23
- Upgrade to h2 1.3.170
- Upgrade to TestNG 6.8
- Upgrade to Mockito 1.9.5
- Upgrade to Hamcrest 1.3
- Change io.airlift.log.Logger to use java.util.logging internally
* 0.70
- Upgrade to Jackson 2.1.3
- add support for Jackson modules
- Change AsyncHttpClient to be a true async http client
* 0.69
- Upgrade to jmxutils 1.13
- Upgrade to Jackson 1.9.12
* 0.68
- Dropped support for v1 events
- HTTP clients are now Closeable and shutdown properly
- JsonCodecFactory no longer pretty prints by default
- [Bug] Prevent HTTP tests from hanging on machines with many processors
* 0.67
- Dropped the Cassandra module
- Improvements to EquivalenceTester
- [Bug] Don't send entity in http client if there's no body generator
- [Bug] Use System.nanoTime() instead of System.currentTimeMillis for measuring time intervals
- Upgrade to Apache httpclient 4.2.2
- [Bug] Don't throw an exception from http request logger when wall clock time goes backwards
- Improve validation of H2EmbeddedDataSource config
- Allow use of H2 without an init script
- Enable mvcc support for embedded H2
- DataSize and Duration are now serializable as json
* 0.66
- Java 7 is now required
- Replace EWMA with DecayCounter, an implementation that doesn't require a thread pool
- Add HttpUriBuilder from Airship (Formerly Galaxy)
- Add support for binding Jackson key serializers and deserializers in Guice
- Add support for fromString method in configuration type coercion
- Better testing for nulls and unrelated classes in EquivalenceTester
- [Bug] Http client could attempt to connect to port zero; now throw an exception
- Minor fixes for windows
- Add QuantileDigest for computing approximate quantile statistics
- Deprecate MeterStat in favor of newly introduced DistributionStat
* 0.65
- Repackaged the project under io.airlift
* 0.64
- [Bug] Add missing HttpEventModule to skeleton-server
- Enforce use of HttpClientBinder
* 0.63
- [Bug] Make http-client-experimental a compile dependency
* 0.62
- Removed all dependencies to Ning's Asynchronous HTTP client
- Cleaned up dependency management
- Multiple refactoring commits for readability
- Addition of request filter support to HttpClient
- Removal of deprecated JavaUrlHttpClient
- Removal of the experimental module, segmented into separate modules
* 0.61
- Upgrade to Guava 12.0 for Platform and Rest Server Base
- Tests for keep alives in ApacheHttpClient
* 0.60
- [Bug] Fix announcements for Rack servers
* 0.59
- Replace Hibernate validator with direct dependency on Apache BVal
- [Bug] Fix V1 Events so they can be used with http request events
- Check for duplicate classes in the dependency closure during builds
- Add JsonEventSerializer for external use
- Add support for Rack servers to be able to announce with Discovery
* 0.58
- [Bug] Add new required modules for Rack server
- [Bug] Make media type parser more lenient
- [Experimental] Make JsonResponseHandler success codes configurable
* 0.57
- [Bug] ServiceInventory periodic refresh wasn't working
- Export ServiceInventory through JMX
* 0.56
- Fixed bug that causes HttpRequestEvents to not be published
* 0.55
- Upgrade to Jackson 1.9.5
- Record and event for each http request processed
- Added support for X-FORWARDED-FOR and X-FORWARDED-PROTO in request event and logging
- Add timing filter to http request flow for measuring time to first byte
- Set names of http server threads to a reasonable value
- Service inventory now support file URIs
- [Experimental] Changed HttpClient to not be async and added new AsyncHttpClient
- [Experimental] Replace java.net.URL with Apache HTTP Components in http-client
* 0.54
- [Bug] Don't use doclava in javadoc plugin for servers that use rest-server-base, it's buggy
* 0.53
- Upgrade to jetty 8.1.1 to fix connection leak when clients hang up prematurely
- EOFException while reading a JSON request now results in a 400 instead of a 500
- Add support for binding servlet filters into TestingHttpServer
- [Experimental] Update Rack packaging (JRuby on Rails) for Rails 3.1+
* 0.52
- Use a separate thread pool for http server admin listener
- Make http client connect and read timeout configurable
- Add node.external-address property to specify external routable address
- Server response header is not longer sent
* 0.51
- [Experimental] Trace token support in http server
- Support Map and Multimap for event fields
- Add server binary and config spec in jmx-http-rpc announcement
- [Bug] Announce jmx-http-rpc on admin port instead of main port
- [Bug] Add support for legacy log.config to launcher
* 0.50
- Upgrade to Guava 10.0.1
- Upgrade to TestNG 6.2.1
- Upgrade to Joda time 2.0
- Upgrade to CGlib 2.2.2
- Upgrade to Hibernate validation 4.2.0.Final
- Upgrade to log4j-over-slf4j 1.6.2
- Upgrade to Logback 0.9.30
- [Experimental] Log levels can be configured via JMX
* 0.49
- Upgrade to Jetty 8.0.3. Fixes critical bug where the http server leaks connections and file descriptors
- Sign artifacts for projects that inherit from rest-server-base and rack-server-base-experimental
- Optimize event serializer under high-concurrency
- [Experimental] Discovery client now bootstraps itself by calling out to an optional service inventory API
- [Experimental] Http server and client now expose request stats over JMX
- [Experimental] Support for conditional module binding
- [Experimental] Http-based JMX connector listens on an alternate admin port
- [Bug] Http client now consumes all unread input, otherwise keep-alive doesn't work
- [Bug] RackServlet inherited GEM_HOME and GEM_PATH environment variables
* 0.48
- Upgrade to Guava 10.0 - older version are now banned
- Upgrade to Hector 0.8.0-2
- Upgrade to Jersey 1.9.1
- Upgrade to Jetty 8.0.1
- [Experimental] Added http based JMX remote connector
- [Experimental] User agent if http client is now node.id to make debugging easier
- [Bug] removed broken discovery and event fail-safe logic
* 0.47
- [Bug] Fixed memory leaks in DiscoveryClient and EventClient due to AsyncHttpClient
- [Experimental] Added simplified HttpClient based in java.net.URL
* 0.46
- Launcher script now symlinks etc directory from install dir to data dir
- Launcher now looks for etc/node.properties instead of etc/node.config
* 0.45
- Releases and snapshots are now published to oss.sonatype.org
- HttpServer now allows SSL renegotiation (underlying issue has been fixed in JVM)
- Record request size in http log
- Launcher now supports --node-config for passing node specific data from Galaxy Agent
- Upgrade to async-http-client 1.6.5
- [Experimental] Rewrote event client v2 serialization and deprecated v1
- [Experimental] Added support for nested and iterable event fields in v2
- [Experimental] Changed event client to use java.net.URL instead of AsyncHttpClient due to memory leak
- [Experimental] Upgraded embedded Cassandra to 0.8.5
- [Experimental] Changed default Cassandra partitioner to BYTE_ORDERED
- [Experimental] Added rpc timeout configuration support for embedded Cassandra
- [Experimental] Moved experimental discovery based JDBC driver to pure Ruby
- [Experimental] Removed experimental dbpool-no-dep jar
- [Experimental] JRuby on Rails platform integration and galaxy packaging
- [Experimental] Added toBytes and roundTo methods to DataSize
- [Bug] System out and err redirect to logging does not flush
- [Bug] Fixed race condition in embedded Cassandra lifecycle
- [Bug] Fixed error reporting in event client
- [Bug] Fixed launcher issues with spawn using 'sh -c' on Linux
* 0.44 [BAD]
- This is a bad release. Do not use.
* 0.43
- [Experimental] Added rack servlet for integration with JRuby on Rails
- [Bug] Discovery client fails to reschedule refresh job in some cases
* 0.42
- [Experimental] Embedded cassandra server and testing utilities
- [Experimental] Added DataSize (similar to Duration)
- [Experimental] Added ValidationAssertions.assertValidates and assertFailsValidation
- [Bug] Discovery client fails when consuming static announcements
- [Bug] MySQL connection timeouts using the wrong unit (ms vs s)
- [Bug] Jar manifest using the wrong file names when building snapshot versions
* 0.41
- Removed support for building RPMs
- Launcher now requires MRI Ruby 1.9.2+
- Launcher script now supports arbitrary properties using -Dname=value
- Launcher script now supports restart command
- Launcher script now supports a data directory argument which specifies
the location to which the process should write persistent data files
- Launcher script now writes pid file and launcher log to data directory
- Added location to NodeInfo
- Updated to Surefire 2.8.1 which fixes Guice dependency problems
- Graduated @MinDuration and @MaxDuration to platform units module
- [Experimental] Added service discovery client
- [Experimental] JMX now announces to discovery server
- [Experimental] HTTP event client now uses discovery to find event collectors
- [Experimental] MySQL db pool now uses discovery to find mysql servers
- [Experimental] Added no-dep discovery database driver for use in Rails
- [Bug] Assembly packaging now picks up jars that contain a maven classifier
* 0.40
- Builder-based API for EquivalenceTester
- Improved error reporting for EquivalenceTester
- MockRequest for testing Jax-RS resources
- Bean validation annotations for Durations (@MinDuration, @MaxDuration)
- Log.debug() variant that takes an exception
- http-server.https.keystore.password to http-server.https.keystore.key
- Bug fixes