diff options
author | Harald Musum <musum@oath.com> | 2018-06-19 09:24:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-19 09:24:12 +0200 |
commit | d758fceda5534761762064e4a6095d13caf5bb90 (patch) | |
tree | 1aa2a95f5ea26666ff9845100aeb8a28dc39ccb2 | |
parent | 149d942cb6f66f7d7d01e15f48fb84a9c6bad6e4 (diff) | |
parent | 9a6bf23197ef204c3327927660cbf7f22e81ee73 (diff) |
Merge pull request #6226 from vespa-engine/hmusum/use-immutable-set
Use an immutable set instead of synchronized on parameter
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java | 19 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java | 4 |
2 files changed, 7 insertions, 16 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java index 131f5f6085b..4eefcc0ca75 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java @@ -1,14 +1,12 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.http.v2; - +import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.TenantName; import com.yahoo.slime.Cursor; import com.yahoo.vespa.config.server.http.HttpConfigResponse; import com.yahoo.vespa.config.server.http.SessionResponse; -import java.util.Collection; - /** * Tenant list response * @@ -16,17 +14,11 @@ import java.util.Collection; * */ public class ListTenantsResponse extends SessionResponse { - private final Collection<TenantName> tenantNames; - - public ListTenantsResponse(final Collection<TenantName> tenants) { + + ListTenantsResponse(ImmutableSet<TenantName> tenants) { super(); - this.tenantNames = tenants; Cursor tenantArray = this.root.setArray("tenants"); - synchronized (tenants) { - for (final TenantName tenantName : tenants) { - tenantArray.addString(tenantName.value()); - } - } + tenants.forEach(tenantName -> tenantArray.addString(tenantName.value())); } @Override @@ -34,7 +26,4 @@ public class ListTenantsResponse extends SessionResponse { return HttpConfigResponse.JSON_CONTENT_TYPE; } - public Collection<TenantName> getTenantNames() { - return tenantNames; - } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java index c8e9da1265b..b79fd1c7a62 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.http.v2; +import com.google.common.collect.ImmutableSet; import com.google.inject.Inject; import com.yahoo.config.provision.TenantName; @@ -26,6 +27,7 @@ public class TenantHandler extends HttpHandler { private final TenantRepository tenantRepository; private final ApplicationRepository applicationRepository; + @SuppressWarnings("WeakerAccess") // instantiated by dependency injection @Inject public TenantHandler(Context ctx, TenantRepository tenantRepository, ApplicationRepository applicationRepository) { super(ctx); @@ -51,7 +53,7 @@ public class TenantHandler extends HttpHandler { Utils.checkThatTenantExists(tenantRepository, tenantName); return new TenantGetResponse(tenantName); } else if (isListTenantsRequest(request)) { - return new ListTenantsResponse(tenantRepository.getAllTenantNames()); + return new ListTenantsResponse(ImmutableSet.copyOf(tenantRepository.getAllTenantNames())); } else { throw new BadRequestException(request.getUri().toString()); } |