Skip to content

Commit 6d846bf

Browse files
committed
Revert "Add ability to set execution attributes as part of client and request override configurations"
This reverts commit 65c4ab0.
1 parent 9d9179e commit 6d846bf

File tree

8 files changed

+13
-246
lines changed

8 files changed

+13
-246
lines changed

core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/handler/AwsClientHandlerUtils.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,6 @@ static <InputT extends SdkRequest, OutputT extends SdkResponse> ExecutionContext
100100
.putAttribute(SdkInternalExecutionAttribute.DISABLE_HOST_PREFIX_INJECTION,
101101
clientConfig.option(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION));
102102

103-
executionAttributes.putAllAttributes(clientConfig.option(SdkClientOption.EXECUTION_ATTRIBUTES));
104-
originalRequest.overrideConfiguration().ifPresent(requestOverrideConfiguration ->
105-
executionAttributes.putAllAttributes(requestOverrideConfiguration.executionAttributes()));
106-
107103
ExecutionInterceptorChain executionInterceptorChain =
108104
new ExecutionInterceptorChain(clientConfig.option(SdkClientOption.EXECUTION_INTERCEPTORS));
109105
return ExecutionContext.builder()

core/sdk-core/src/main/java/software/amazon/awssdk/core/RequestOverrideConfiguration.java

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.util.function.Consumer;
2828
import software.amazon.awssdk.annotations.Immutable;
2929
import software.amazon.awssdk.annotations.SdkPublicApi;
30-
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
3130
import software.amazon.awssdk.core.signer.Signer;
3231
import software.amazon.awssdk.metrics.MetricPublisher;
3332
import software.amazon.awssdk.utils.CollectionUtils;
@@ -47,7 +46,6 @@ public abstract class RequestOverrideConfiguration {
4746
private final Duration apiCallAttemptTimeout;
4847
private final Signer signer;
4948
private final List<MetricPublisher> metricPublishers;
50-
private final Map<ExecutionAttribute<?>, Object> executionAttributes;
5149

5250
protected RequestOverrideConfiguration(Builder<?> builder) {
5351
this.headers = CollectionUtils.deepUnmodifiableMap(builder.headers(), () -> new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
@@ -57,7 +55,6 @@ protected RequestOverrideConfiguration(Builder<?> builder) {
5755
this.apiCallAttemptTimeout = Validate.isPositiveOrNull(builder.apiCallAttemptTimeout(), "apiCallAttemptTimeout");
5856
this.signer = builder.signer();
5957
this.metricPublishers = Collections.unmodifiableList(new ArrayList<>(builder.metricPublishers()));
60-
this.executionAttributes = Collections.unmodifiableMap(new HashMap<>(builder.executionAttributes()));
6158
}
6259

6360
/**
@@ -141,14 +138,6 @@ public List<MetricPublisher> metricPublishers() {
141138
return metricPublishers;
142139
}
143140

144-
/**
145-
* Returns the additional execution attributes to be added to this request.
146-
* This collection of attributes is added in addition to the attributes set on the client.
147-
* An attribute value added on the client within the collection of attributes is superseded by an
148-
* attribute value added on the request.
149-
*/
150-
public Map<ExecutionAttribute<?>, Object> executionAttributes() { return executionAttributes; }
151-
152141
@Override
153142
public boolean equals(Object o) {
154143
if (this == o) {
@@ -382,22 +371,6 @@ default B putRawQueryParameter(String name, String value) {
382371

383372
List<MetricPublisher> metricPublishers();
384373

385-
/**
386-
* Sets the additional execution attributes collection for this request.
387-
* @param executionAttributes Execution attributes map for this request
388-
* @return This object for method chaining.
389-
*/
390-
B executionAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes);
391-
392-
/**
393-
* Add an execution attribute to the existing collection of execution attributes.
394-
* @param attribute The execution attribute object
395-
* @param value The value of the execution attribute.
396-
*/
397-
B addExecutionAttribute(ExecutionAttribute attribute, Object value);
398-
399-
Map<ExecutionAttribute<?>, Object> executionAttributes();
400-
401374
/**
402375
* Create a new {@code SdkRequestOverrideConfiguration} with the properties set on this builder.
403376
*
@@ -414,7 +387,6 @@ protected abstract static class BuilderImpl<B extends Builder> implements Builde
414387
private Duration apiCallAttemptTimeout;
415388
private Signer signer;
416389
private List<MetricPublisher> metricPublishers = new ArrayList<>();
417-
private Map<ExecutionAttribute<?>, Object> executionAttributes = new HashMap<>();
418390

419391
protected BuilderImpl() {
420392
}
@@ -554,23 +526,5 @@ public void setMetricPublishers(List<MetricPublisher> metricPublishers) {
554526
public List<MetricPublisher> metricPublishers() {
555527
return metricPublishers;
556528
}
557-
558-
@Override
559-
public B executionAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes) {
560-
Validate.paramNotNull(executionAttributes, "executionAttributes");
561-
this.executionAttributes = executionAttributes;
562-
return (B) this;
563-
}
564-
565-
@Override
566-
public B addExecutionAttribute(ExecutionAttribute executionAttribute, Object value) {
567-
this.executionAttributes.put(executionAttribute, value);
568-
return (B) this;
569-
}
570-
571-
@Override
572-
public Map<ExecutionAttribute<?>, Object> executionAttributes() { return executionAttributes; }
573-
574-
public void setExecutionAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes) { executionAttributes(executionAttributes); }
575529
}
576530
}

core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,19 @@
2222
import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.SIGNER;
2323
import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.USER_AGENT_PREFIX;
2424
import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.USER_AGENT_SUFFIX;
25-
import static software.amazon.awssdk.core.client.config.SdkClientOption.*;
25+
import static software.amazon.awssdk.core.client.config.SdkClientOption.ADDITIONAL_HTTP_HEADERS;
26+
import static software.amazon.awssdk.core.client.config.SdkClientOption.API_CALL_ATTEMPT_TIMEOUT;
27+
import static software.amazon.awssdk.core.client.config.SdkClientOption.API_CALL_TIMEOUT;
28+
import static software.amazon.awssdk.core.client.config.SdkClientOption.ASYNC_HTTP_CLIENT;
29+
import static software.amazon.awssdk.core.client.config.SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED;
30+
import static software.amazon.awssdk.core.client.config.SdkClientOption.ENDPOINT_OVERRIDDEN;
31+
import static software.amazon.awssdk.core.client.config.SdkClientOption.EXECUTION_INTERCEPTORS;
32+
import static software.amazon.awssdk.core.client.config.SdkClientOption.METRIC_PUBLISHERS;
33+
import static software.amazon.awssdk.core.client.config.SdkClientOption.PROFILE_FILE;
34+
import static software.amazon.awssdk.core.client.config.SdkClientOption.PROFILE_NAME;
35+
import static software.amazon.awssdk.core.client.config.SdkClientOption.RETRY_POLICY;
36+
import static software.amazon.awssdk.core.client.config.SdkClientOption.SCHEDULED_EXECUTOR_SERVICE;
37+
import static software.amazon.awssdk.core.client.config.SdkClientOption.SIGNER_OVERRIDDEN;
2638
import static software.amazon.awssdk.core.internal.SdkInternalTestAdvancedClientOption.ENDPOINT_OVERRIDDEN_OVERRIDE;
2739
import static software.amazon.awssdk.utils.CollectionUtils.mergeLists;
2840
import static software.amazon.awssdk.utils.Validate.paramNotNull;
@@ -358,7 +370,6 @@ public final B overrideConfiguration(ClientOverrideConfiguration overrideConfig)
358370
clientConfiguration.option(PROFILE_FILE, overrideConfig.defaultProfileFile().orElse(null));
359371
clientConfiguration.option(PROFILE_NAME, overrideConfig.defaultProfileName().orElse(null));
360372
clientConfiguration.option(METRIC_PUBLISHERS, overrideConfig.metricPublishers());
361-
clientConfiguration.option(EXECUTION_ATTRIBUTES, overrideConfig.executionAttributes());
362373
overrideConfig.advancedOption(ENDPOINT_OVERRIDDEN_OVERRIDE).ifPresent(value -> {
363374
clientConfiguration.option(ENDPOINT_OVERRIDDEN, value);
364375
});

core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.java

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.util.TreeMap;
2626
import java.util.function.Consumer;
2727
import software.amazon.awssdk.annotations.SdkPublicApi;
28-
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
2928
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
3029
import software.amazon.awssdk.core.retry.RetryMode;
3130
import software.amazon.awssdk.core.retry.RetryPolicy;
@@ -58,7 +57,6 @@ public final class ClientOverrideConfiguration
5857
private final ProfileFile defaultProfileFile;
5958
private final String defaultProfileName;
6059
private final List<MetricPublisher> metricPublishers;
61-
private final Map<ExecutionAttribute<?>, Object> executionAttributes;
6260

6361
/**
6462
* Initialize this configuration. Private to require use of {@link #builder()}.
@@ -73,7 +71,6 @@ private ClientOverrideConfiguration(Builder builder) {
7371
this.defaultProfileFile = builder.defaultProfileFile();
7472
this.defaultProfileName = builder.defaultProfileName();
7573
this.metricPublishers = Collections.unmodifiableList(new ArrayList<>(builder.metricPublishers()));
76-
this.executionAttributes = Collections.unmodifiableMap(new HashMap<>(builder.executionAttributes()));
7774
}
7875

7976
@Override
@@ -199,13 +196,6 @@ public List<MetricPublisher> metricPublishers() {
199196
return metricPublishers;
200197
}
201198

202-
/**
203-
* Returns the additional execution attributes to be added for this client.
204-
*
205-
* @Return Map of execution attributes.
206-
*/
207-
public Map<ExecutionAttribute<?>, Object> executionAttributes() { return executionAttributes; }
208-
209199
@Override
210200
public String toString() {
211201
return ToString.builder("ClientOverrideConfiguration")
@@ -449,22 +439,6 @@ default Builder retryPolicy(RetryMode retryMode) {
449439
Builder addMetricPublisher(MetricPublisher metricPublisher);
450440

451441
List<MetricPublisher> metricPublishers();
452-
453-
/**
454-
* Sets the additional execution attributes collection for this client.
455-
* @param executionAttributes Execution attributes map for this client.
456-
* @return This object for method chaining.
457-
*/
458-
Builder executionAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes);
459-
460-
/**
461-
* Add an execution attribute to the existing collection of execution attributes.
462-
* @param attribute The execution attribute object
463-
* @param value The value of the execution attribute.
464-
*/
465-
Builder addExecutionAttribute(ExecutionAttribute attribute, Object value);
466-
467-
Map<ExecutionAttribute<?>, Object> executionAttributes();
468442
}
469443

470444
/**
@@ -480,7 +454,6 @@ private static final class DefaultClientOverrideConfigurationBuilder implements
480454
private ProfileFile defaultProfileFile;
481455
private String defaultProfileName;
482456
private List<MetricPublisher> metricPublishers = new ArrayList<>();
483-
private Map<ExecutionAttribute<?>, Object> executionAttributes = new HashMap<>();
484457

485458
@Override
486459
public Builder headers(Map<String, List<String>> headers) {
@@ -645,22 +618,6 @@ public List<MetricPublisher> metricPublishers() {
645618
return Collections.unmodifiableList(metricPublishers);
646619
}
647620

648-
@Override
649-
public Builder executionAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes) {
650-
Validate.paramNotNull(executionAttributes, "executionAttributes");
651-
this.executionAttributes = executionAttributes;
652-
return this;
653-
}
654-
655-
@Override
656-
public Builder addExecutionAttribute(ExecutionAttribute executionAttribute, Object value) {
657-
this.executionAttributes.put(executionAttribute, value);
658-
return this;
659-
}
660-
661-
@Override
662-
public Map<ExecutionAttribute<?>, Object> executionAttributes() { return executionAttributes; }
663-
664621
@Override
665622
public ClientOverrideConfiguration build() {
666623
return new ClientOverrideConfiguration(this);

core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/SdkClientOption.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import software.amazon.awssdk.annotations.SdkProtectedApi;
2424
import software.amazon.awssdk.core.ClientType;
2525
import software.amazon.awssdk.core.ServiceConfiguration;
26-
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
2726
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
2827
import software.amazon.awssdk.core.retry.RetryPolicy;
2928
import software.amazon.awssdk.http.SdkHttpClient;
@@ -139,12 +138,6 @@ public final class SdkClientOption<T> extends ClientOption<T> {
139138
*/
140139
public static final SdkClientOption<Boolean> SIGNER_OVERRIDDEN = new SdkClientOption<>(Boolean.class);
141140

142-
/**
143-
* Option to specify additional execution attributes to each client call.
144-
*/
145-
public static final SdkClientOption<Map<ExecutionAttribute<?>, Object>> EXECUTION_ATTRIBUTES =
146-
new SdkClientOption<>(new UnsafeValueType(Map.class));
147-
148141
private SdkClientOption(Class<T> valueClass) {
149142
super(valueClass);
150143
}

core/sdk-core/src/main/java/software/amazon/awssdk/core/interceptor/ExecutionAttributes.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,6 @@ public <U> ExecutionAttributes putAttribute(ExecutionAttribute<U> attribute, U v
4848
return this;
4949
}
5050

51-
/**
52-
* Add all execution attributes from the provided collection to the internal collection of attributes.
53-
*/
54-
public <U> ExecutionAttributes putAllAttributes(Map<ExecutionAttribute<?>, Object> executionAttributes) {
55-
this.attributes.putAll(executionAttributes);
56-
return this;
57-
}
58-
5951
/**
6052
* Set the provided attribute in this collection of attributes if it does not already exist in the collection.
6153
*/

core/sdk-core/src/test/java/software/amazon/awssdk/core/RequestOverrideConfigurationTest.java

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.util.List;
2727
import java.util.Map;
2828
import org.junit.Test;
29-
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
3029
import software.amazon.awssdk.metrics.MetricPublisher;
3130
import software.amazon.awssdk.utils.ImmutableMap;
3231

@@ -166,71 +165,4 @@ public void addMetricPublisher_listPreviouslyAdded_appendedToList() {
166165

167166
assertThat(overrideConfig.metricPublishers()).containsExactly(publishers.get(0), publishers.get(1), thirdAdded);
168167
}
169-
170-
@Test
171-
public void executionAttributes_createsCopy() {
172-
Map<ExecutionAttribute<?>, Object> executionAttributes = new HashMap<>();
173-
174-
ExecutionAttribute testAttribute = new ExecutionAttribute("TestAttribute");
175-
String expectedValue = "Value1";
176-
executionAttributes.put(testAttribute, expectedValue);
177-
178-
SdkRequestOverrideConfiguration overrideConfig = SdkRequestOverrideConfiguration.builder()
179-
.executionAttributes(executionAttributes)
180-
.build();
181-
182-
executionAttributes.remove(testAttribute);
183-
assertThat(overrideConfig.executionAttributes().get(testAttribute)).isEqualTo(expectedValue);
184-
}
185-
186-
@Test
187-
public void executionAttributes_maintainsAllAdded() {
188-
Map<ExecutionAttribute, Object> executionAttributeObjectMap = new HashMap<>();
189-
for (int i = 0; i < 5; i++) {
190-
executionAttributeObjectMap.put(new ExecutionAttribute<>("Attribute" + i), mock(Object.class));
191-
}
192-
193-
SdkRequestOverrideConfiguration.Builder builder = SdkRequestOverrideConfiguration.builder();
194-
195-
for (Map.Entry<ExecutionAttribute, Object> attributeObjectEntry : executionAttributeObjectMap.entrySet()) {
196-
builder.addExecutionAttribute(attributeObjectEntry.getKey(), attributeObjectEntry.getValue());
197-
}
198-
199-
SdkRequestOverrideConfiguration overrideConfig = builder.build();
200-
assertThat(overrideConfig.executionAttributes()).isEqualTo(executionAttributeObjectMap);
201-
}
202-
203-
@Test
204-
public void executionAttributes_overwritesPreviouslyAdded() {
205-
Map<ExecutionAttribute<?>, Object> executionAttributes = new HashMap<>();
206-
for (int i = 0; i < 5; i++) {
207-
executionAttributes.put(new ExecutionAttribute<>("Attribute" + i), mock(Object.class));
208-
}
209-
210-
SdkRequestOverrideConfiguration.Builder builder = SdkRequestOverrideConfiguration.builder();
211-
212-
builder.addExecutionAttribute(new ExecutionAttribute("AddedAttribute"), mock(Object.class));
213-
builder.executionAttributes(executionAttributes);
214-
SdkRequestOverrideConfiguration overrideConfig = builder.build();
215-
assertThat(overrideConfig.executionAttributes()).isEqualTo(executionAttributes);
216-
}
217-
218-
@Test
219-
public void executionAttributes_listPreviouslyAdded_appendedToList() {
220-
Map<ExecutionAttribute<?>, Object> executionAttributes = new HashMap<>();
221-
for (int i = 0; i < 5; i++) {
222-
executionAttributes.put(new ExecutionAttribute<>("Attribute" + i), mock(Object.class));
223-
}
224-
225-
SdkRequestOverrideConfiguration.Builder builder = SdkRequestOverrideConfiguration.builder();
226-
227-
builder.executionAttributes(executionAttributes);
228-
ExecutionAttribute addedAttribute = new ExecutionAttribute("AddedAttribute");
229-
Object addedValue = mock(Object.class);
230-
231-
builder.addExecutionAttribute(addedAttribute, addedValue);
232-
233-
SdkRequestOverrideConfiguration overrideConfig = builder.build();
234-
assertThat(overrideConfig.executionAttributes().get(addedAttribute)).isEqualTo(addedValue);
235-
}
236168
}

0 commit comments

Comments
 (0)