Microservices library - scalecube-services is a high throughput, low latency reactive microservices library built to scale. it features: API-Gateways, service-discovery, service-load-balancing, the architecture supports plug-and-play service communication modules and features. built to provide performance and low-latency real-time stream-processing
Support new qualfier format: version/namespace/action.
Version: must be in a format v{d+} character v plus 1 or more digits.
Old qualifier format must also work. Version for currently in use qualifiers (/namespace/action or namespace/action) must be 0.
Add new method to Qualifier:
int getQualifierVersion()
version/namespace/action
^^^^^^^
v1 or v22 or v356 => parse v{d+}
namespace/action or /namespace/action
<= 0
If this is old qualfier format (/namespace/action or namespace/action) then 0 must be returned.
Add new annotation @Version with default int value set to 1. Validate during scanning -- don't allow negative or zero. Annotation is optional, and must be allowed only on class level.
@ServiceMethod considerations:
Qualifier on service method annotation must not include version. Only current behavior is allowed -- to override namespace and action.
Support new qualfier format:
version/namespace/action
. Version: must be in a formatv{d+}
characterv
plus 1 or more digits.Old qualifier format must also work. Version for currently in use qualifiers (
/namespace/action
ornamespace/action
) must be0
.Add new method to Qualifier:
int getQualifierVersion()
If this is old qualfier format (
/namespace/action
ornamespace/action
) then0
must be returned.Add new annotation
@Version
with default int value set to1
. Validate during scanning -- don't allow negative or zero. Annotation is optional, and must be allowed only on class level.@ServiceMethod
considerations: Qualifier on service method annotation must not include version. Only current behavior is allowed -- to override namespace and action.Example:
Expected qualfier:
v1/auth/createAccessKey
Expected: exception saying it's not allowed to set
0
as a version. **NOTE:0
is registered value, it's used to denote absence of@Version
annotation.Expected: exception in both examples saying it's not allowed to set versions on service method.