- Dropwizard 1.2.0
- Mockito-core 2.10.0
- Merged a PR converting to a lot of Java8 equivalents
- Dropwizard 1.1.3
waitForInitialLoad
blocks an application from starting until Breakerbox configurations are fetched.- Fixing
hystrix-metrics-event-stream
from pulling in an older version of servlet-api
- Hystrix 1.5.13
- Dropwizard 1.1.2
- Assertj-core 3.8.0
- Mockito-core 2.8.47
- Error_prone_core 2.0.21
- Adding jcenter/bintray repository
- Hystrix 1.5.9
- Dropwizard 1.0.5
- Added Google Error-Prone to the build
TenacityConfiguredBundle
won't initialize if anotherHystrixMetricsPublisher
is registered. This is usually encountered when you try to run multipleDropwizardAppRule
instances within a given test. Relaxing this constraint to just log a warning and to display the currently registeredHystrixMetricsPublisher
instead of preventing startup.- Hystrix 1.5.7
- Dropwizard 1.0.3
- Assertj-guava 3.1.0
- Tenacity
ExceptionMapper
s no longer throw exceptions anymore when they don't match a specific requirement. They should always resolve the exception gracefully into aResponse
.
- Hystrix 1.5.4
- Fixing bug for TenacityCommand/TenacityObservableCommand builders generics. They take two parameters for an expectant Function<T, R> but it actually only ever uses Supplier so the first parameter is completely useless. Removing it entirely.
TenacityTestRule
has additional stream-related resets.
- Dropwizard 1.0.0
- Java8
TenacityCommand
andTenacityObservableCommmand
now have fluent builders that leverage functional interfaces for command construction- No planned releases for dw7, dw8, dw9 since this is largely a Dropwizard 1.0.0 release.
- Removing calculating
latencyTotal_percentile_98
andlatencyExecute_percentile_98
as they are no longer available in HystrixCommands
- Hystrix 1.5.2
- AssertJ Core 2.4.1
- TenacityCommand now accepts a
TenacityPropertyKey
if you want to control which threadpool is associated with your command - Type parameter names should comply with a naming conversion PR #34
- Multiple code improvements PR #33
- Hystrix 1.5.1
- Tenacity Bill of Materials (tenacity-bom for dependencyManagement)
- AssertJ Core 2.3.0
- AssertJ Guava 2.0.0
- Hystrix 1.4.23
- Dropwizard 0.9.2
- New version release strategy. Hopefully it is clearer that 0.7.3 is the latest dropwizard version (0.9.x) while 0.7.3-dw8 supports legacy dropwizard-0.8.5, and 0.7.3-dw7 supports legacy dropwizard 0.7.1
- Hystrix 1.4.20
- Findbugs 3.0.3
- Dropwizard 0.9.1
- Findbugs 3.0.2
- Upgraded maven-*-plugins
- Backport of 0.7.2
- Backport of 0.7.1
- Dropwizard 0.8.5
- Hystrix 1.4.17
- RxJava 1.0.14
- Hystrix 1.4.15
- Ability to move /tenacity resources to the admin port. This is tunable by using
usingAdminPort()
when building theTenacity
bundle.
- Dropwizard 0.8.4
- Removing
ForkedJerseyClientBuilder
since Dropwizard PR 1137 has been merged into 0.8.2 - Removing deprecated
ClientException
andClientResponseResult
TenacityObservables
to help with executing two observables. Intended to help execute the first argument eagerly and only execute (lazily) the second argument if the primary fails.- When registering
TenacityConfiguration
s withArchaius
no longer set theexecutionIsolationStrategy
properties, unless specifically set by the user. This was leading to misconfigurations when usingTenacityObservableCommand
s that default toSEMAPHORE
isolation. This is due to the disconnect between not knowing if aTenacityConfiguration
is paired with a command that is intended to be used asTHREAD
orSEMAPHORE
isolation prior. A user must now explicitly set this within theTenacityConfiguration
or viaBreakerbox
otherwise it takes the default of the command type.
- When registering configuration properties with
Archaius
use its hierarchical system so that multiple clients ofArchaius
can register their configurations as well. This changes the behavior from before whereTenacity
would install a custom configuration different than the sharable default. - Hystrix 1.4.14
- Deprecating
ClientResponseResult
andClientException
. These will be removed in the following release. There will be a replacement for this pattern. - Fixing
DefaultServerFactory
cast in theTenacityConfigureBundle
Pull Request #26 - Hystrix 1.4.13
- RxJava 1.0.13
- Hystrix 1.4.11
- RxJava 1.0.12
- Hystrix 1.4.10
- Hystrix fixing a memory leak that was released in 1.4.8+. This affects Tenacity version 0.6.6.
- Hystrix 1.4.9
- Exclude the transitive dependency on io.dropwizard.metrics.metrics-core 3.1.2
- Hystrix 1.4.7
- RxJava 1.0.10
- Hystrix 1.4.5
- Added
GET /tenacity/circuitbreaker/{key}
- Added
PUT /tenacity/circuitbreaker/{key}
. Accepted bodies areFORCED_CLOSED
,FORCED_OPEN
, andFORCED_RESET
. This allows specific control over a particular circuit breaker.FORCED_RESET
returns the circuitbreaker to it's original state whether it's neitherFORCED_OPEN
orFORCED_CLOSED
. - Added
TenacityCircuitBreakerHealthCheck
which can be enabled via theTenacityBundleBuilder
. This fails the/healthcheck
when any circuitbreaker is in an open state or not accepting requests.
- Fixed a memory-leak when using
TenacityJerseyClient
. It was incorrectly adjusting the timeout for the shared configuration for all WebTargets created from a parentJerseyClient
instead of on the per-request configuration that is generated for each invocation of aWebTarget
. This will be sent to Dropwizard as a pull-request, but for now we have a workaround. You need to create yourJerseyClient
using theForkedJerseyClientBuilder
instead of Dropwizard'sJerseyClientBuilder
. Note: this is only necessary when using dropwizard 0.8.0 and 0.8.1 - Migrated
WebTarget
out of a jersey related namespace. No use of non-public APIs anymore. - No backport for this release as it only affects dropwizard 0.8.x
- Fixing bug where
TenacityPropertyStore
wouldn't properly update theexecutionIsolationStrategy
to reflect the live configuration value. This only affects Breakerbox's ability to determine if configurations are synchronized or not. - There is a memory-leak when using
TenacityJerseyClient
and Dropwizard <= 0.8.1. Please avoid usingTenacityJerseyClient
in this release.
- Remove
ManagedConcurrencyStrategy
and revert back to the default. This is replicated throughManagedHystrix
. Hystrix also enforces stricter use ofHystrixRequestContext
semantics when using a custom strategy. This broke use of per-request features of Hystrix. - There is a memory-leak when using
TenacityJerseyClient
and Dropwizard <= 0.8.1. Please avoid usingTenacityJerseyClient
in this release.
- Dropwizard 0.8.1 - This was blocked by Dropwizard 0.8.0 pull-request
- There is a memory-leak when using
TenacityJerseyClient
and Dropwizard <= 0.8.1. Please avoid usingTenacityJerseyClient
in this release.
- Backport of 0.7.2
- Backport of 0.7.1
- Backport of 0.6.17
- Backport of 0.6.16
- Backport of 0.6.15
- Backport of 0.6.14
- Jersey 1.x incompatiblities and DW7 not allowing empty JerseyContextes
- Backport of 0.6.13
- Backport of 0.6.12
- Backport of 0.6.11
- Backport of 0.6.10
- Backport of 0.6.9
- Backport of 0.6.8
- Backport of 0.6.7. Fixing a memory leak in 0.5.9.
- Backport of 0.6.6
- Backport of 0.6.5
- Backport of 0.6.4 (0.6.3 was a Dropwizard 0.8.1 fix only)
- Backport of 0.6.2
- Backport of 0.6.1
- Hystrix 1.4.4
executionIsolationStrategy
is now a configurable throughTenacityConfiguration
. Defaults toTHREAD
isolation. You'd want to normally set this toSEMAPHORE
when usingTenacityObservableCommand
. Breakerbox will have a respective update which will also allow you set theexecutionIsolationStrategy
.- Fixing bug where the
TenacityPropertyRegister
would rely on thetoString()
method of the TenacityPropertyKey instead ofname()
.
- Added
SemaphoreConfiguration
. This enables the ability to configure semaphore specific parameters for when dealing with this type of execution isolation strategy. This is mainly used when leveraging theTenacityObservableCommand
. - Breakerbox will have a corresponding update to this release to enable configuration it as well.
- 1.4.0 Hystrix
- TenacityObservableCommand is now available. This is NOT executed on a separate threadpool, like
TenacityCommand
does, but instead leverage the semaphore-isolated execution strategy. It does support timeouts and these are handled by a separate threadHystrixTimer
. These timeouts will behave exactly like they did with the thread-isolated execution strategy or when usingTenacityCommand
. Here you can read more about Reactive Commands
- Added
TenacityJerseyClient
andTenacityJerseyClientBuilder
to reduce configuration complexity when using Tenacity andJerseyClient
. At the moment these two have competing timeout configurations that can end up looking like application exceptions when they are simplyTimeoutException
s being thrown by JerseyClient.TenacityJerseyClient
aims to fix this by adjusting the socket read timeout on a per-request basis on the currently set execution timeout value for resources built fromTenacityJerseyClient
and its associatedTenacityPropertyKey
- Hystrix 1.3.20
- Hystrix 1.3.19
- Removed registration of
MetricsPublisher
in theTenacityTestRule
as it was breaking application test rule tests and wasn't necessary.
TenacityExceptionMapper
andTenacityContainerExceptionMapper
now use a shared check to ensure that HystrixRuntimeExceptions are handled the same.- Added a test to explicitly ensure that Hystrix Timeouts are handled appropriately by the ExceptionMapper
- Added a workaround for
HystrixPlugin.UnitTest.reset()
not reseting the static state correctly.
- Changed
TenacityBundle
to be aTenacityConfiguredBundle
and streamlined the tenacity-application integration process. This means: when declaringTenacityPropertyKey
instances, there is access to the configuration class manual registering of configurations is no longer necessary.
- Hystrix 1.3.18
- Adding 95/98 to the latencies.
- Fixed bug where we are no longer publishing HystrixThreadPool metrics.
- Adding 99.9 to the latencies. Hystrix by default maxes out at 99.5 which is not consistent with Coda Hale metrics
- Dropwizard 0.7.1
- Force hystrix-codahale to depend on metrics 3.0.2, until pull request 279 is merged
- Upgrade to findbugs 2.5.4
- Merged pull request 8. This adds a bunch of tests to test failure behavioral differences between execute()/queue()/observe()
- Under high contention it's possible for HystrixThreadPoolMetrics to be associated with an incorrect TheadPoolExecutor. This manifests itself as showing the incorrect metrics because the executor being used by Hystrix is different from the one being used to supply metrics. As a temporary fix we now ensure that for any given ThreadPoolKey we only ever construct one pool. This will be removed once it's fixed in upstream Hystrix. pull request 270
- tenacity-client incorrectly captured metrics
- Hystrix 1.3.16
- maven-enforcer-plugin
- Supporting dropwizard 0.7.0
- 0.2.x now will only have fixes for the deprecated dropwizard <0.7.0
- Hystrix 1.3.18
- Adding 95/98 to the latencies.
- Fixed bug where we are no longer publishing HystrixThreadPool metrics.
- Adding 99.9 to the latencies. Hystrix by default maxes out at 99.5 which is not consistent with Coda Hale metrics
- Under high contention it's possible for HystrixThreadPoolMetrics to be associated with an incorrect TheadPoolExecutor. This manifests itself as showing the incorrect metrics because the executor being used by Hystrix is different from the one being used to supply metrics. As a temporary fix we now ensure that for any given ThreadPoolKey we only ever construct one pool. This will be removed once it's fixed in upstream Hystrix. pull request 270
- Hystrix 1.3.15
- Generics lacking from some classes.
- Created ExceptionLoggingCommandHook which passes thrown exceptions to the appropriate, registered ExceptionLogger
- Added HystrixCommandExecutionHook to TenacityBundleBuilder
- Created DefaultExceptionLogger, which just logs everything
- Created tenacity-jdbi module to house DBIExceptionLogger and SQLExceptionLogger
- Upgrade Hystrix to 1.3.13
- Upgrade Hystrix to 1.3.9
- Initial release