1.1.0
What's Changed
- build(deps): bump smallrye-config from 2.8.1 to 2.8.2 by @dependabot in #206
- build(deps): bump mutiny from 1.3.0 to 1.3.1 by @dependabot in #209
- build(deps): bump smallrye-mutiny-vertx-web-client from 2.18.0 to 2.18.1 by @dependabot in #210
- build(deps): bump version.mockito from 4.2.0 to 4.3.1 by @dependabot in #215
- build(deps): bump version.slf4j from 1.7.33 to 1.7.35 by @dependabot in #214
- Implement the random and least-requests load balancing strategies by @cescoffier in #219
- Replace raw types from Metadata to use properly parameterized types by @cescoffier in #222
- build(deps): bump kubernetes-client.version from 5.11.2 to 5.12.0 by @dependabot in #213
- Implements a load-balancer following the "Power of Two Random Choices" strategy by @cescoffier in #221
- build(deps): bump kubernetes-client.version from 5.12.0 to 5.12.1 by @dependabot in #224
- build(deps): bump build-helper-maven-plugin from 3.2.0 to 3.3.0 by @dependabot in #223
- Simplified and more configurable Least Response Time LB by @michalszynkiewicz in #225
- set next version to 1.0.1-SNAPSHOT by @michalszynkiewicz in #227
- build(deps): bump version.slf4j from 1.7.35 to 1.7.36 by @dependabot in #226
- errorPenalty is in nanos by @vsevel in #234
- build(deps-dev): bump gson from 2.8.9 to 2.9.0 by @dependabot in #236
- build(deps): bump smallrye-config from 2.8.2 to 2.9.0 by @dependabot in #235
- Improved statistics collection for load balancers by @michalszynkiewicz in #238
- build(deps): bump smallrye-build-parent from 34 to 35 by @dependabot in #241
- build(deps): bump smallrye-parent from 34 to 35 by @dependabot in #242
- build(deps): bump spring-cloud-dependencies from 2021.0.0 to 2021.0.1 by @dependabot in #244
- build(deps-dev): bump spring-cloud-starter-netflix-eureka-server from 3.1.0 to 3.1.1 by @dependabot in #246
- build(deps): bump spring-framework-bom from 5.3.15 to 5.3.16 by @dependabot in #245
- 'use-secure-random' attribute by @cescoffier in #247
- Serializing calls to non-threadsafe load balancers by @michalszynkiewicz in #243
- build(deps): bump smallrye-config from 2.9.0 to 2.9.1 by @dependabot in #250
- 1.1.0 by @michalszynkiewicz in #252
New Contributors
Full Changelog: 1.0.0...1.1.0
Breaking Changes
class io.smallrye.stork.loadbalancer.leastresponsetime.CallStatistics
has been removed: The class was moved to the impl packagemethod java.lang.String io.smallrye.stork.loadbalancer.leastresponsetime.LeastResponseTimeLoadBalancerProviderConfiguration::getForceRetryThreshold()
has been removed: The parameter of the load balancer was removedmethod java.lang.String io.smallrye.stork.loadbalancer.leastresponsetime.LeastResponseTimeLoadBalancerProviderConfiguration::getRetryAfterFailureThreshold()
has been removed: The parameter of the load balancer was removedclass io.smallrye.stork.loadbalancer.leastresponsetime.LeastResponseTimeLoadBalancerProvider
has been removed: The least-response-time load balancer now accepts declining-factor and error-penalty attributes, the former attributes are not supported.method io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.staticlist.StaticListServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.staticlist.StaticListServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Added Infrastructure support (new feature)field io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscovery.META_CONSUL_SERVICE_ID
has been removed: Moved to a new Metadata model (new feature)field io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscovery.META_CONSUL_SERVICE_NODE
has been removed: Moved to a new Metadata model (new feature)field io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscovery.META_CONSUL_SERVICE_NODE_ADDRESS
has been removed: Moved to a new Metadata model (new feature)field io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscovery.META_CONSUL_SERVICE_TAGS
has been removed: Moved to a new Metadata model (new feature)method boolean io.smallrye.stork.CachingServiceDiscovery::refreshNotNeed() @ io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscovery
has been removed: Removed unused methodmethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.consul.ConsulServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Integrate Infrastructure (new feature)method boolean io.smallrye.stork.CachingServiceDiscovery::refreshNotNeed() @ io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery
has been removed: Remove unused methodmethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Integrate Infrastructure (new feature)method void io.smallrye.stork.servicediscovery.eureka.EurekaServiceDiscovery::<init>(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, boolean)
updated tomethod void io.smallrye.stork.servicediscovery.eureka.EurekaServiceDiscovery::<init>(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, boolean, io.smallrye.stork.integration.StorkInfrastructure)
: Integrate Infrastructure support (new feature)method boolean io.smallrye.stork.CachingServiceDiscovery::refreshNotNeed() @ io.smallrye.stork.servicediscovery.eureka.EurekaServiceDiscovery
has been removed: Removed unused methodmethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.eureka.EurekaServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.servicediscovery.eureka.EurekaServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Integrate Infrastructure support (new feature)class io.smallrye.stork.servicediscovery.eureka.StorkConfigHelper
has been removed: Removed unused classclass io.smallrye.stork.StorkTestUtils
has been removed: Class moved to avoid a split packagemethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.test.TestServiceDiscovery1Provider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.test.TestServiceDiscovery1Provider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Added Infrastructure support (new feature)method io.smallrye.stork.ServiceDiscovery io.smallrye.stork.test.TestServiceDiscovery2Provider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.test.TestServiceDiscovery2Provider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Added Infrastructure support (new feature)class io.smallrye.stork.test.TestConfigProvider
has been removed: The interface was moved to the API moduleclass io.smallrye.stork.microprofile.MicroProfileConfigProvider
has been removed: The interface was moved to the API moduleclass io.smallrye.stork.CachingServiceDiscovery.Refresh
has been removed: Switched toUni.memoize()
, the functionality didn't changemethod boolean io.smallrye.stork.CachingServiceDiscovery::refreshNotNeed()
has been removed: Switched toUni.memoize()
, the functionality didn't changeparameter void io.smallrye.stork.DefaultServiceInstance::<init>(long, java.lang.String, int, boolean, java.util.Map<java.lang.String, java.lang.String>, ===java.util.Map<java.lang.String, java.lang.Object>===)
updated toparameter void io.smallrye.stork.DefaultServiceInstance::<init>(long, java.lang.String, int, boolean, java.util.Map<java.lang.String, java.lang.String>, ===io.smallrye.stork.Metadata<? extends io.smallrye.stork.MetadataKey>===)
: Added metadata support (new feature)method java.util.Map<java.lang.String, java.lang.Object> io.smallrye.stork.DefaultServiceInstance::getMetadata()
updated tomethod io.smallrye.stork.Metadata<? extends io.smallrye.stork.MetadataKey> io.smallrye.stork.DefaultServiceInstance::getMetadata()
: Added metadata support (new feature)method java.util.Map<java.lang.String, java.lang.Object> io.smallrye.stork.ServiceInstance::getMetadata()
updated tomethod io.smallrye.stork.Metadata<? extends io.smallrye.stork.MetadataKey> io.smallrye.stork.ServiceInstance::getMetadata()
: Added metadata support (new feature)class io.smallrye.stork.ServiceInstancesCache
has been removed: Switched toUni.memoize()
, the functionality didn't changemethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.spi.ServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig)
updated tomethod io.smallrye.stork.ServiceDiscovery io.smallrye.stork.spi.ServiceDiscoveryProvider::createServiceDiscovery(io.smallrye.stork.config.ServiceDiscoveryConfig, java.lang.String, io.smallrye.stork.config.ServiceConfig, io.smallrye.stork.integration.StorkInfrastructure)
: Added Infrastructure support- java.class.externalClassExposedInAPI Basic API classes have been pulled out to the stork-api module
class io.smallrye.stork.spi.ServiceInstanceIds
has been removed: The class was moved to the io.smallrye.stork.utils packageclass io.smallrye.stork.spi.ServiceInstanceUtils
has been removed: The class was moved to the io.smallrye.stork.utils packageclass io.smallrye.stork.spi.SimpleServiceConfig
has been removed: The class was moved to the API moduleinterface io.smallrye.stork.impl.config.ConfigProvider
has been removed: The class was moved to the API modulemethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::empty()
updated tomethod io.smallrye.stork.api.Metadata<? extends io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::empty()
: Use proper parameterized types - it should be invisible to users, except less warningsparameter io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(===java.lang.Class<?>===)
updated toparameter <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(===java.lang.Class<K>===)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>)
: Use proper parameterized types - it should be invisible to users, except less warningsparameter io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(===java.lang.Class<?>===, java.util.Map<?, java.lang.Object>)
updated toparameter <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(===java.lang.Class<K>===, java.util.Map<K, java.lang.Object>)
: Use proper parameterized types - it should be invisible to users, except less warningsparameter io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>, ===java.util.Map<?, java.lang.Object>===)
updated toparameter <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>, ===java.util.Map<K, java.lang.Object>===)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>, java.util.Map<?, java.lang.Object>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>, java.util.Map<K, java.lang.Object>)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>, java.util.Map<?, java.lang.Object>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>, java.util.Map<K, java.lang.Object>)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<?>, java.util.Map<?, java.lang.Object>)
updated tomethod <K extends java.lang.Enum<K> & io.smallrye.stork.api.MetadataKey> io.smallrye.stork.api.Metadata<K> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::of(java.lang.Class<K>, java.util.Map<K, java.lang.Object>)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod io.smallrye.stork.api.Metadata io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::with(T, java.lang.Object)
updated tomethod io.smallrye.stork.api.Metadata<T> io.smallrye.stork.api.Metadata<T extends java.lang.Enum<T>>::with(T, java.lang.Object)
: Use proper parameterized types - it should be invisible to users, except less warningsmethod void io.smallrye.stork.api.ServiceInstance::recordResult(long, java.lang.Throwable)
has been removed: The method was replaced with dedicated methods for recording start of a call, end of a call and failuremethod void io.smallrye.stork.api.Service::<init>(java.lang.String, java.util.Optional<io.smallrye.stork.api.LoadBalancer>, io.smallrye.stork.api.ServiceDiscovery, boolean)
updated tomethod void io.smallrye.stork.api.Service::<init>(java.lang.String, io.smallrye.stork.api.LoadBalancer, io.smallrye.stork.api.ServiceDiscovery, boolean, boolean)
: A new parameter was added to specify if the load balancer is thread-safe. Also, the LoadBalancer is not passed as Optional anymore, since it defaults to round-robinmethod io.smallrye.mutiny.Uni<java.util.List<io.smallrye.stork.api.ServiceInstance>> io.smallrye.stork.api.Service::getServiceInstances()
has been removed: The method was renamed to getInstances()method io.smallrye.mutiny.Uni<io.smallrye.stork.api.ServiceInstance> io.smallrye.stork.api.Service::selectServiceInstance()
has been removed: The method was renamed to selectInstance()