Skip to content
Prev Previous commit
Next Next commit
pr comments
  • Loading branch information
nehrao1 committed Jan 6, 2025
commit 2ee9484e536c4301bc031a3606a506f5f98d3c61
Original file line number Diff line number Diff line change
Expand Up @@ -77,33 +77,6 @@ public void buildClient_withCustomGatewayConnectionConfig() {
safeCloseSyncClient(cosmosClient);
}

@Test(groups = { "emulator" })
public void buildClient_withThinclientGatewayConnectionConfig() {
GatewayConnectionConfig gatewayConnectionConfig = new GatewayConnectionConfig();
gatewayConnectionConfig.setThinClientEnabled(true);
final List<String> preferredRegions = new ArrayList<>();
preferredRegions.add("West US");
CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder()
.endpoint(TestConfigurations.HOST)
.key(TestConfigurations.MASTER_KEY)
.preferredRegions(preferredRegions)
.userAgentSuffix("custom-gateway-client")
.multipleWriteRegionsEnabled(false)
.endpointDiscoveryEnabled(false)
.readRequestsFallbackEnabled(true)
.gatewayMode(gatewayConnectionConfig);

CosmosClient cosmosClient = cosmosClientBuilder.buildClient();

AsyncDocumentClient asyncDocumentClient =
CosmosBridgeInternal.getAsyncDocumentClient(cosmosClient);
ConnectionPolicy connectionPolicy = asyncDocumentClient.getConnectionPolicy();
assertThat(connectionPolicy.getConnectionMode()).isEqualTo(ConnectionMode.GATEWAY);
assertThat(connectionPolicy.getThinclientEnabled()).isEqualTo(true);
validateGatewayConnectionConfig(connectionPolicy, cosmosClientBuilder, gatewayConnectionConfig);
safeCloseSyncClient(cosmosClient);
}

@Test(groups = { "emulator" })
public void buildClient_withDefaultDirectConnectionConfig() {
DirectConnectionConfig directConnectionConfig = DirectConnectionConfig.getDefaultConfig();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import io.netty.handler.ssl.SslContext;
import org.testng.annotations.Test;

import java.net.URI;
import java.util.EnumSet;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -114,4 +115,22 @@ public void sslContextTest() {
sslContext = config.getSslContext(true);
assertThat(sslContext).isEqualTo(ReflectionUtils.getSslContextWithCertValidationDisabled(config));
}

@Test(groups = { "emulator" })
public void thinClientEnabledTest() {
Configs config = new Configs();
assertThat(config.getThinclientEnabled()).isFalse();

System.setProperty("COSMOS.THINCLIENT_ENABLED", "true");
assertThat(config.getThinclientEnabled()).isTrue();
}

@Test(groups = { "emulator" })
public void thinClientEndpointTest() {
Configs config = new Configs();
assertThat(config.getThinclientEndpoint()).isEqualTo(URI.create("COSMOS.DEFAULT_THINCLIENT_ENDPOINT"));

System.setProperty("COSMOS.THINCLIENT_ENDPOINT", "testThinClientEndpoint");
assertThat(config.getThinclientEndpoint()).isEqualTo(URI.create("testThinClientEndpoint"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -640,12 +640,6 @@ public URI getServiceEndpoint() {
throw new RuntimeException();
}
}

@Override
public URI getThinclientEndpoint() {
// From env var right now. Mock will be updated when thin client endpoint discovery is finalized
return URI.create("testThinclientEndpoint");
}
}

private static <T> Stream<T> toStream(Iterable<T> iterable) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,8 +397,6 @@ public Builder withOperationPolicies(List<CosmosOperationPolicy> operationPolici
*/
boolean isContentResponseOnWriteEnabled();

URI getThinclientEndpoint();

/**
* Gets the connection policy
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ public URI getThinclientEndpoint() {
return getJVMConfigAsURI(THINCLIENT_ENDPOINT, DEFAULT_THINCLIENT_ENDPOINT);
}

public boolean getThinclientEnabled() {
public static boolean getThinclientEnabled() {
return getJVMConfigAsBoolean(THINCLIENT_ENABLED, false);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public final class ConnectionPolicy {
private Duration httpNetworkRequestTimeout;
private ProxyOptions proxy;
private Duration idleHttpConnectionTimeout;
private boolean isThinclientEnabled;

// Direct connection config properties
private Duration connectTimeout;
Expand Down Expand Up @@ -93,7 +92,6 @@ private ConnectionPolicy(
.getDirectConnectionConfigAccessor()
.getIoThreadPriority(directConnectionConfig);
this.idleHttpConnectionTimeout = gatewayConnectionConfig.getIdleConnectionTimeout();
this.isThinclientEnabled = gatewayConnectionConfig.getThinClientEnabled();
this.maxConnectionPoolSize = gatewayConnectionConfig.getMaxConnectionPoolSize();
this.httpNetworkRequestTimeout = BridgeInternal.getNetworkRequestTimeoutFromGatewayConnectionConfig(gatewayConnectionConfig);
this.proxy = gatewayConnectionConfig.getProxy();
Expand Down Expand Up @@ -271,13 +269,6 @@ public ConnectionPolicy setIdleHttpConnectionTimeout(Duration idleHttpConnection
return this;
}

/**
* Gets whether thin client has been enabled for gateway.
*
* @return true if enabled, false otherwise
*/
public boolean getThinclientEnabled() { return this.isThinclientEnabled; }

/**
* Gets the idle tcp connection timeout for direct client
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,4 @@ public interface DatabaseAccountManagerInternal {
* @return service endpoint
*/
URI getServiceEndpoint();

/**
* Gets the thin client endpoint
*
* @return thin client endpoint
*/
URI getThinclientEndpoint();
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.azure.cosmos.implementation.apachecommons.collections.list.UnmodifiableList;
import com.azure.cosmos.implementation.routing.LocationCache;
import com.azure.cosmos.implementation.routing.LocationHelper;
import com.azure.cosmos.implementation.routing.RegionNameToRegionIdMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Flux;
Expand All @@ -18,7 +19,9 @@
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.Function;
Expand All @@ -41,7 +44,6 @@ public class GlobalEndpointManager implements AutoCloseable {
private final AtomicBoolean isRefreshing;
private final AtomicBoolean refreshInBackground;
private final Scheduler scheduler = Schedulers.newSingle(theadFactory);
private final URI thinclientEndpoint;
private final boolean isThinClientEnabled;
private volatile boolean isClosed;
private AtomicBoolean firstTimeDatabaseAccountInitialization = new AtomicBoolean(true);
Expand Down Expand Up @@ -72,8 +74,7 @@ public GlobalEndpointManager(DatabaseAccountManagerInternal owner, ConnectionPol

this.owner = owner;
this.defaultEndpoint = owner.getServiceEndpoint();
this.thinclientEndpoint = owner.getThinclientEndpoint();
this.isThinClientEnabled = connectionPolicy.getThinclientEnabled();
this.isThinClientEnabled = configs.getThinclientEnabled();
this.connectionPolicy = connectionPolicy;

this.isRefreshing = new AtomicBoolean(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ public class RxDocumentClientImpl implements AsyncDocumentClient, IAuthorization
private final String masterKeyOrResourceToken;
private final URI serviceEndpoint;
private final URI thinclientEndpoint;
private final boolean thinclientEnabled;
private final ConnectionPolicy connectionPolicy;
private final ConsistencyLevel consistencyLevel;
private final BaseAuthorizationTokenProvider authorizationTokenProvider;
Expand Down Expand Up @@ -489,6 +490,7 @@ private RxDocumentClientImpl(URI serviceEndpoint,
this.configs = configs;
this.masterKeyOrResourceToken = masterKeyOrResourceToken;
this.serviceEndpoint = serviceEndpoint;
this.thinclientEnabled = configs.getThinclientEnabled();
this.thinclientEndpoint = configs.getThinclientEndpoint();
this.credential = credential;
this.tokenCredential = tokenCredential;
Expand Down Expand Up @@ -796,9 +798,6 @@ public URI getServiceEndpoint() {
return RxDocumentClientImpl.this.getServiceEndpoint();
}

@Override
public URI getThinclientEndpoint() { return RxDocumentClientImpl.this.getThinclientEndpoint(); }

@Override
public Flux<DatabaseAccount> getDatabaseAccountFromEndpoint(URI endpoint) {
logger.info("Getting database account endpoint from {}", endpoint);
Expand Down Expand Up @@ -868,11 +867,6 @@ public URI getServiceEndpoint() {
return this.serviceEndpoint;
}

@Override
public URI getThinclientEndpoint() {
return this.thinclientEndpoint;
}

@Override
public ConnectionPolicy getConnectionPolicy() {
return this.connectionPolicy;
Expand Down
Loading