Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion sdk/cosmos/azure-cosmos/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
#### Breaking Changes

#### Bugs Fixed
Fixing an NPE caused due to boxed Boolean conversion. - See [PR 48656](https://github.com/Azure/azure-sdk-for-java/pull/48656/)
* Fixing an NPE caused due to boxed Boolean conversion. - See [PR 48656](https://github.com/Azure/azure-sdk-for-java/pull/48656/)
* Fixed JVM `<clinit>` deadlock when multiple threads concurrently trigger Cosmos SDK class loading for the first time. - See [PR 48689](https://github.com/Azure/azure-sdk-for-java/pull/48689)

#### Other Changes

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,22 +79,14 @@
builder = CosmosClientBuilder.class,
isAsync = true)
public final class CosmosAsyncClient implements Closeable {
private final ImplementationBridgeHelpers.CosmosQueryRequestOptionsHelper.CosmosQueryRequestOptionsAccessor
queryOptionsAccessor = ImplementationBridgeHelpers.CosmosQueryRequestOptionsHelper.getCosmosQueryRequestOptionsAccessor();
private final ImplementationBridgeHelpers.FeedResponseHelper.FeedResponseAccessor
feedResponseAccessor = ImplementationBridgeHelpers.FeedResponseHelper.getFeedResponseAccessor();

private static final Logger logger = LoggerFactory.getLogger(CosmosAsyncClient.class);

private static final CosmosClientTelemetryConfig DEFAULT_TELEMETRY_CONFIG = new CosmosClientTelemetryConfig();
private static final ImplementationBridgeHelpers.CosmosQueryRequestOptionsHelper.CosmosQueryRequestOptionsAccessor queryOptionsAccessor =
ImplementationBridgeHelpers.CosmosQueryRequestOptionsHelper.getCosmosQueryRequestOptionsAccessor();
private static final ImplementationBridgeHelpers.FeedResponseHelper.FeedResponseAccessor feedResponseAccessor =
ImplementationBridgeHelpers.FeedResponseHelper.getFeedResponseAccessor();
private static final ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.CosmosClientTelemetryConfigAccessor
telemetryConfigAccessor = ImplementationBridgeHelpers
.CosmosClientTelemetryConfigHelper
.getCosmosClientTelemetryConfigAccessor();

private static final ImplementationBridgeHelpers.ReadConsistencyStrategyHelper.ReadConsistencyStrategyAccessor
readConsistencyStrategyAccessor = ImplementationBridgeHelpers
.ReadConsistencyStrategyHelper
.getReadConsistencyStrategyAccessor();

private final static Function<CosmosAsyncContainer, CosmosAsyncContainer> DEFAULT_CONTAINER_FACTORY =
(originalContainer) -> originalContainer;
Expand Down Expand Up @@ -148,7 +140,7 @@ public final class CosmosAsyncClient implements Closeable {
this.clientTelemetryConfig = effectiveTelemetryConfig;
boolean contentResponseOnWriteEnabled = builder.isContentResponseOnWriteEnabled();
ApiType apiType = builder.apiType();
String clientCorrelationId = telemetryConfigAccessor
String clientCorrelationId = ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getClientCorrelationId(effectiveTelemetryConfig);

List<Permission> permissionList = new ArrayList<>();
Expand Down Expand Up @@ -207,15 +199,14 @@ public final class CosmosAsyncClient implements Closeable {
TagName.ClientCorrelationId.toString(),
ClientTelemetryMetrics.escape(effectiveClientCorrelationId));

this.clientMetricRegistrySnapshot = telemetryConfigAccessor
this.clientMetricRegistrySnapshot = ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getClientMetricRegistry(effectiveTelemetryConfig);

CosmosMeterOptions cpuMeterOptions = telemetryConfigAccessor
CosmosMeterOptions cpuMeterOptions = ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getMeterOptions(effectiveTelemetryConfig, CosmosMetricName.SYSTEM_CPU);
CosmosMeterOptions memoryMeterOptions = telemetryConfigAccessor
CosmosMeterOptions memoryMeterOptions = ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getMeterOptions(effectiveTelemetryConfig, CosmosMetricName.SYSTEM_MEMORY_FREE);


if (clientMetricRegistrySnapshot != null) {
ClientTelemetryMetrics.add(clientMetricRegistrySnapshot, cpuMeterOptions, memoryMeterOptions);
}
Expand All @@ -224,15 +215,15 @@ public final class CosmosAsyncClient implements Closeable {
);

if (this.clientMetricRegistrySnapshot != null) {
telemetryConfigAccessor.setClientCorrelationTag(
ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().setClientCorrelationTag(
effectiveTelemetryConfig,
this.clientCorrelationTag );
telemetryConfigAccessor.setAccountName(
ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().setAccountName(
effectiveTelemetryConfig,
this.accountTagValue
);

telemetryConfigAccessor.addDiagnosticsHandler(
ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().addDiagnosticsHandler(
effectiveTelemetryConfig,
new ClientMetricsDiagnosticsHandler(this)
);
Expand Down Expand Up @@ -504,7 +495,6 @@ public CosmosPagedFlux<CosmosDatabaseProperties> readAllDatabases() {
return readAllDatabases(new CosmosQueryRequestOptions());
}


/**
* Query for databases.
* <br/>
Expand Down Expand Up @@ -677,7 +667,6 @@ private CosmosPagedFlux<CosmosDatabaseProperties> queryDatabasesInternal(
});
}


private Mono<CosmosDatabaseResponse> createDatabaseIfNotExistsInternal(CosmosAsyncDatabase database,
ThroughputProperties throughputProperties, Context context) {
String spanName = "createDatabaseIfNotExists." + database.getId();
Expand Down Expand Up @@ -765,7 +754,7 @@ ReadConsistencyStrategy getEffectiveReadConsistencyStrategy(
OperationType operationType,
ReadConsistencyStrategy desiredReadConsistencyStrategyOfOperation) {

return readConsistencyStrategyAccessor.getEffectiveReadConsistencyStrategy(
return ImplementationBridgeHelpers.ReadConsistencyStrategyHelper.getReadConsistencyStrategyAccessor().getEffectiveReadConsistencyStrategy(
resourceType,
operationType,
desiredReadConsistencyStrategyOfOperation,
Expand All @@ -780,13 +769,12 @@ CosmosDiagnosticsThresholds getEffectiveDiagnosticsThresholds(
return operationLevelThresholds;
}


if (this.clientTelemetryConfig == null) {
return new CosmosDiagnosticsThresholds();
}

CosmosDiagnosticsThresholds clientLevelThresholds =
telemetryConfigAccessor.getDiagnosticsThresholds(this.clientTelemetryConfig);
ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().getDiagnosticsThresholds(this.clientTelemetryConfig);

return clientLevelThresholds != null ? clientLevelThresholds : new CosmosDiagnosticsThresholds();
}
Expand All @@ -805,15 +793,15 @@ boolean isTransportLevelTracingEnabled() {
this.clientTelemetryConfig
: DEFAULT_TELEMETRY_CONFIG;

if (telemetryConfigAccessor.isLegacyTracingEnabled(effectiveConfig)) {
if (ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().isLegacyTracingEnabled(effectiveConfig)) {
return false;
}

if (this.getConnectionPolicy().getConnectionMode() != ConnectionMode.DIRECT) {
return false;
}

return telemetryConfigAccessor.isTransportLevelTracingEnabled(effectiveConfig);
return ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor().isTransportLevelTracingEnabled(effectiveConfig);
}

void recordOpenConnectionsAndInitCachesCompleted(List<CosmosContainerIdentity> cosmosContainerIdentities) {
Expand Down Expand Up @@ -859,13 +847,13 @@ public String getAccountTagValue(CosmosAsyncClient client) {

@Override
public EnumSet<TagName> getMetricTagNames(CosmosAsyncClient client) {
return telemetryConfigAccessor
return ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getMetricTagNames(client.clientTelemetryConfig);
}

@Override
public EnumSet<MetricCategory> getMetricCategories(CosmosAsyncClient client) {
return telemetryConfigAccessor
return ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getMetricCategories(client.clientTelemetryConfig);
}

Expand Down Expand Up @@ -896,7 +884,7 @@ public String getUserAgent(CosmosAsyncClient client) {

@Override
public CosmosMeterOptions getMeterOptions(CosmosAsyncClient client, CosmosMetricName name) {
return telemetryConfigAccessor
return ImplementationBridgeHelpers.CosmosClientTelemetryConfigHelper.getCosmosClientTelemetryConfigAccessor()
.getMeterOptions(client.clientTelemetryConfig, name);
}

Expand Down
Loading
Loading