From 800e00d1171416dbb193accb85ee195281fd5a59 Mon Sep 17 00:00:00 2001 From: Artem Vysochyn Date: Thu, 5 Dec 2024 00:05:10 +0200 Subject: [PATCH 1/2] Dropped support of old-qualifier --- .../scalecube/services/ServiceReference.java | 4 --- .../services/methods/MethodInfo.java | 4 --- .../registry/ServiceRegistryImpl.java | 32 ++++++------------- 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/services-api/src/main/java/io/scalecube/services/ServiceReference.java b/services-api/src/main/java/io/scalecube/services/ServiceReference.java index c9c7b7e14..1c47ddcd0 100644 --- a/services-api/src/main/java/io/scalecube/services/ServiceReference.java +++ b/services-api/src/main/java/io/scalecube/services/ServiceReference.java @@ -47,10 +47,6 @@ public String qualifier() { return qualifier; } - public String oldQualifier() { - return Qualifier.DELIMITER + qualifier(); - } - public String endpointId() { return endpointId; } diff --git a/services-api/src/main/java/io/scalecube/services/methods/MethodInfo.java b/services-api/src/main/java/io/scalecube/services/methods/MethodInfo.java index e32549e23..51544da75 100644 --- a/services-api/src/main/java/io/scalecube/services/methods/MethodInfo.java +++ b/services-api/src/main/java/io/scalecube/services/methods/MethodInfo.java @@ -70,10 +70,6 @@ public String qualifier() { return qualifier; } - public String oldQualifier() { - return Qualifier.DELIMITER + qualifier(); - } - public Type parameterizedReturnType() { return parameterizedReturnType; } diff --git a/services/src/main/java/io/scalecube/services/registry/ServiceRegistryImpl.java b/services/src/main/java/io/scalecube/services/registry/ServiceRegistryImpl.java index aa8115216..50ba5ae34 100644 --- a/services/src/main/java/io/scalecube/services/registry/ServiceRegistryImpl.java +++ b/services/src/main/java/io/scalecube/services/registry/ServiceRegistryImpl.java @@ -72,13 +72,7 @@ public boolean registerService(ServiceEndpoint serviceEndpoint) { boolean success = serviceEndpoints.putIfAbsent(serviceEndpoint.id(), serviceEndpoint) == null; if (success) { LOGGER.log(Level.DEBUG, "ServiceEndpoint registered: {0}", serviceEndpoint); - serviceEndpoint - .serviceReferences() - .forEach( - sr -> { - populateServiceReferences(sr.qualifier(), sr); - populateServiceReferences(sr.oldQualifier(), sr); - }); + serviceEndpoint.serviceReferences().forEach(this::populateServiceReferences); } return success; } @@ -93,13 +87,9 @@ public ServiceEndpoint unregisterService(String endpointId) { serviceReferencesByQualifier.values().stream() .flatMap(Collection::stream) .filter(sr -> sr.endpointId().equals(endpointId)) - .collect(Collectors.toList()); + .toList(); - serviceReferencesOfEndpoint.forEach( - sr -> { - computeServiceReferences(sr.qualifier(), sr); - computeServiceReferences(sr.oldQualifier(), sr); - }); + serviceReferencesOfEndpoint.forEach(this::cleanServiceReferences); } return serviceEndpoint; } @@ -158,13 +148,11 @@ public void registerService(ServiceInfo serviceInfo) { serviceInfo.level()); methodInvokers.put(methodInfo.qualifier(), methodInvoker); - methodInvokers.put(methodInfo.oldQualifier(), methodInvoker); })); } private void checkMethodInvokerDoesntExist(MethodInfo methodInfo) { - if (methodInvokers.containsKey(methodInfo.qualifier()) - || methodInvokers.containsKey(methodInfo.oldQualifier())) { + if (methodInvokers.containsKey(methodInfo.qualifier())) { LOGGER.log(Level.ERROR, "MethodInvoker already exists, methodInfo: {0}", methodInfo); throw new IllegalStateException("MethodInvoker already exists"); } @@ -180,20 +168,20 @@ public List listServices() { return serviceInfos; } - private void populateServiceReferences(String qualifier, ServiceReference serviceReference) { + private void populateServiceReferences(ServiceReference sr) { serviceReferencesByQualifier - .computeIfAbsent(qualifier, key -> new CopyOnWriteArrayList<>()) - .add(serviceReference); + .computeIfAbsent(sr.qualifier(), key -> new CopyOnWriteArrayList<>()) + .add(sr); } - private void computeServiceReferences(String qualifier, ServiceReference serviceReference) { + private void cleanServiceReferences(ServiceReference sr) { serviceReferencesByQualifier.compute( - qualifier, + sr.qualifier(), (key, list) -> { if (list == null || list.isEmpty()) { return null; } - list.remove(serviceReference); + list.remove(sr); return !list.isEmpty() ? list : null; }); } From bee031ebd31825207d1ac6aa7257d5cd700e55cb Mon Sep 17 00:00:00 2001 From: Artem Vysochyn Date: Thu, 5 Dec 2024 00:22:52 +0200 Subject: [PATCH 2/2] Dropped support of old-qualifier --- .../java/io/scalecube/services/gateway/SecuredService.java | 4 ++-- .../services/gateway/websocket/WebsocketGatewayAuthTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services-gateway/src/test/java/io/scalecube/services/gateway/SecuredService.java b/services-gateway/src/test/java/io/scalecube/services/gateway/SecuredService.java index 28313dd9f..f634e5b64 100644 --- a/services-gateway/src/test/java/io/scalecube/services/gateway/SecuredService.java +++ b/services-gateway/src/test/java/io/scalecube/services/gateway/SecuredService.java @@ -19,13 +19,13 @@ public interface SecuredService { @RequestType(String.class) Mono createSession(ServiceMessage request); + @Secured @ServiceMethod @RequestType(String.class) - @Secured Mono requestOne(String req); + @Secured @ServiceMethod @RequestType(Integer.class) - @Secured Flux requestN(Integer req); } diff --git a/services-gateway/src/test/java/io/scalecube/services/gateway/websocket/WebsocketGatewayAuthTest.java b/services-gateway/src/test/java/io/scalecube/services/gateway/websocket/WebsocketGatewayAuthTest.java index 0734d43f3..3e85a985a 100644 --- a/services-gateway/src/test/java/io/scalecube/services/gateway/websocket/WebsocketGatewayAuthTest.java +++ b/services-gateway/src/test/java/io/scalecube/services/gateway/websocket/WebsocketGatewayAuthTest.java @@ -175,7 +175,7 @@ void securedMethodAuthenticatedReqStream() { private static ServiceMessage createSessionRequest(String username) { return ServiceMessage.builder() - .qualifier("/" + SecuredService.NAMESPACE + "/createSession") + .qualifier(SecuredService.NAMESPACE + "/createSession") .data(username) .build(); }