This is an automated email from the ASF dual-hosted git repository.

etudenhoefner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new 556b79893c Arrow, AWS, Core: Remove deprecated code for 1.5.0 release 
(#9505)
556b79893c is described below

commit 556b79893c4cf760f031258f0d8ae657e42b4443
Author: Ajantha Bhat <[email protected]>
AuthorDate: Mon Jan 22 13:11:22 2024 +0530

    Arrow, AWS, Core: Remove deprecated code for 1.5.0 release (#9505)
---
 .palantir/revapi.yml                               |  61 +++-
 .../iceberg/arrow/vectorized/VectorHolder.java     |  13 -
 .../arrow/vectorized/VectorizedArrowReader.java    |   6 -
 .../org/apache/iceberg/aws/AwsClientFactories.java |   6 +-
 .../java/org/apache/iceberg/aws/AwsProperties.java |  50 ---
 .../org/apache/iceberg/aws/TestAwsProperties.java  |  25 +-
 .../iceberg/aws/TestHttpClientConfigurations.java  |  14 +-
 .../org/apache/iceberg/PositionDeletesTable.java   |   6 -
 .../org/apache/iceberg/io/ClusteredWriter.java     |  15 -
 .../java/org/apache/iceberg/io/FanoutWriter.java   |  15 -
 .../org/apache/iceberg/rest/RESTSerializers.java   |  26 --
 .../rest/requests/UpdateRequirementParser.java     | 270 ---------------
 .../iceberg/rest/requests/UpdateTableRequest.java  | 366 ---------------------
 13 files changed, 73 insertions(+), 800 deletions(-)

diff --git a/.palantir/revapi.yml b/.palantir/revapi.yml
index c5c92dba0d..47e7a762a6 100644
--- a/.palantir/revapi.yml
+++ b/.palantir/revapi.yml
@@ -874,6 +874,10 @@ acceptedBreaks:
       justification: "Static utility class - should not have public 
constructor"
   "1.4.0":
     org.apache.iceberg:iceberg-core:
+    - code: "java.class.defaultSerializationChanged"
+      old: "class org.apache.iceberg.mapping.NameMapping"
+      new: "class org.apache.iceberg.mapping.NameMapping"
+      justification: "Serialization across versions is not guaranteed"
     - code: "java.class.noLongerImplementsInterface"
       old: "class org.apache.iceberg.AllDataFilesTable"
       new: "class org.apache.iceberg.AllDataFilesTable"
@@ -942,25 +946,74 @@ acceptedBreaks:
       old: "class org.apache.iceberg.SnapshotsTable"
       new: "class org.apache.iceberg.SnapshotsTable"
       justification: "Removing deprecated code"
-    - code: "java.class.defaultSerializationChanged"
-      old: "class org.apache.iceberg.mapping.NameMapping"
-      new: "class org.apache.iceberg.mapping.NameMapping"
-      justification: "Serialization across versions is not guaranteed"
     - code: "java.class.removed"
       old: "class org.apache.iceberg.actions.BinPackStrategy"
       justification: "Removing deprecated code"
     - code: "java.class.removed"
       old: "class org.apache.iceberg.actions.SortStrategy"
       justification: "Removing deprecated code"
+    - code: "java.class.removed"
+      old: "class 
org.apache.iceberg.rest.RESTSerializers.UpdateRequirementDeserializer"
+      justification: "Removing deprecated code"
+    - code: "java.class.removed"
+      old: "class 
org.apache.iceberg.rest.RESTSerializers.UpdateRequirementSerializer"
+      justification: "Removing deprecated code"
+    - code: "java.class.removed"
+      old: "class org.apache.iceberg.rest.requests.UpdateRequirementParser"
+      justification: "Removing deprecated code"
+    - code: "java.class.removed"
+      old: "class org.apache.iceberg.rest.requests.UpdateTableRequest.Builder"
+      justification: "Removing deprecated code"
     - code: "java.class.removed"
       old: "interface org.apache.iceberg.actions.RewriteStrategy"
       justification: "Removing deprecated code"
+    - code: "java.class.removed"
+      old: "interface 
org.apache.iceberg.rest.requests.UpdateTableRequest.UpdateRequirement"
+      justification: "Removing deprecated code"
     - code: "java.field.serialVersionUIDChanged"
       new: "field org.apache.iceberg.util.SerializableMap<K, 
V>.serialVersionUID"
       justification: "Serialization is not be used"
     - code: "java.method.removed"
       old: "method org.apache.iceberg.TableOperations 
org.apache.iceberg.BaseMetadataTable::operations()"
       justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.encryption.EncryptedOutputFile 
org.apache.iceberg.io.ClusteredWriter<T,\
+        \ R>::newOutputFile(org.apache.iceberg.io.OutputFileFactory, 
org.apache.iceberg.PartitionSpec,\
+        \ org.apache.iceberg.StructLike) @ 
org.apache.iceberg.io.ClusteredDataWriter<T>"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.encryption.EncryptedOutputFile 
org.apache.iceberg.io.ClusteredWriter<T,\
+        \ R>::newOutputFile(org.apache.iceberg.io.OutputFileFactory, 
org.apache.iceberg.PartitionSpec,\
+        \ org.apache.iceberg.StructLike) @ 
org.apache.iceberg.io.ClusteredEqualityDeleteWriter<T>"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.encryption.EncryptedOutputFile 
org.apache.iceberg.io.ClusteredWriter<T,\
+        \ R>::newOutputFile(org.apache.iceberg.io.OutputFileFactory, 
org.apache.iceberg.PartitionSpec,\
+        \ org.apache.iceberg.StructLike) @ 
org.apache.iceberg.io.ClusteredPositionDeleteWriter<T>"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.encryption.EncryptedOutputFile 
org.apache.iceberg.io.FanoutWriter<T,\
+        \ R>::newOutputFile(org.apache.iceberg.io.OutputFileFactory, 
org.apache.iceberg.PartitionSpec,\
+        \ org.apache.iceberg.StructLike) @ 
org.apache.iceberg.io.FanoutDataWriter<T>"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.encryption.EncryptedOutputFile 
org.apache.iceberg.io.FanoutWriter<T,\
+        \ R>::newOutputFile(org.apache.iceberg.io.OutputFileFactory, 
org.apache.iceberg.PartitionSpec,\
+        \ org.apache.iceberg.StructLike) @ 
org.apache.iceberg.io.FanoutPositionOnlyDeleteWriter<T>"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.rest.requests.UpdateTableRequest.Builder 
org.apache.iceberg.rest.requests.UpdateTableRequest::builderFor(org.apache.iceberg.TableMetadata)"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.rest.requests.UpdateTableRequest.Builder 
org.apache.iceberg.rest.requests.UpdateTableRequest::builderForCreate()"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method org.apache.iceberg.rest.requests.UpdateTableRequest.Builder 
org.apache.iceberg.rest.requests.UpdateTableRequest::builderForReplace(org.apache.iceberg.TableMetadata)"
+      justification: "Removing deprecated code"
+    - code: "java.method.removed"
+      old: "method void 
org.apache.iceberg.PositionDeletesTable.PositionDeletesBatchScan::<init>(org.apache.iceberg.Table,\
+        \ org.apache.iceberg.Schema, org.apache.iceberg.TableScanContext)"
+      justification: "Removing deprecated code"
   apache-iceberg-0.14.0:
     org.apache.iceberg:iceberg-api:
     - code: "java.class.defaultSerializationChanged"
diff --git 
a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java 
b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java
index 6bd7fc6ab6..8919c3b6f7 100644
--- a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java
+++ b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java
@@ -119,12 +119,6 @@ public class VectorHolder {
     return new ConstantVectorHolder<>(icebergField, numRows, constantValue);
   }
 
-  /** @deprecated since 1.4.0, will be removed in 1.5.0; use typed constant 
holders instead. */
-  @Deprecated
-  public static <T> VectorHolder constantHolder(int numRows, T constantValue) {
-    return new ConstantVectorHolder<>(numRows, constantValue);
-  }
-
   public static VectorHolder deletedVectorHolder(int numRows) {
     return new DeletedVectorHolder(numRows);
   }
@@ -150,13 +144,6 @@ public class VectorHolder {
       this.constantValue = null;
     }
 
-    /** @deprecated since 1.4.0, will be removed in 1.5.0; use typed constant 
holders instead. */
-    @Deprecated
-    public ConstantVectorHolder(int numRows, T constantValue) {
-      this.numRows = numRows;
-      this.constantValue = constantValue;
-    }
-
     public ConstantVectorHolder(Types.NestedField icebergField, int numRows, T 
constantValue) {
       super(icebergField);
       this.numRows = numRows;
diff --git 
a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedArrowReader.java
 
b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedArrowReader.java
index 35a6e8daa8..27ee25124f 100644
--- 
a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedArrowReader.java
+++ 
b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedArrowReader.java
@@ -572,12 +572,6 @@ public class VectorizedArrowReader implements 
VectorizedReader<VectorHolder> {
   public static class ConstantVectorReader<T> extends VectorizedArrowReader {
     private final T value;
 
-    /** @deprecated since 1.4.0, will be removed in 1.5.0; use typed constant 
readers. */
-    @Deprecated
-    public ConstantVectorReader(T value) {
-      this.value = value;
-    }
-
     public ConstantVectorReader(Types.NestedField icebergField, T value) {
       super(icebergField);
       this.value = value;
diff --git a/aws/src/main/java/org/apache/iceberg/aws/AwsClientFactories.java 
b/aws/src/main/java/org/apache/iceberg/aws/AwsClientFactories.java
index df31f6ab80..580e7303ff 100644
--- a/aws/src/main/java/org/apache/iceberg/aws/AwsClientFactories.java
+++ b/aws/src/main/java/org/apache/iceberg/aws/AwsClientFactories.java
@@ -122,7 +122,7 @@ public class AwsClientFactories {
           .applyMutation(awsClientProperties::applyClientRegionConfiguration)
           .applyMutation(httpClientProperties::applyHttpClientConfigurations)
           .applyMutation(awsProperties::applyGlueEndpointConfigurations)
-          .applyMutation(awsProperties::applyClientCredentialConfigurations)
+          
.applyMutation(awsClientProperties::applyClientCredentialConfigurations)
           .build();
     }
 
@@ -131,7 +131,7 @@ public class AwsClientFactories {
       return KmsClient.builder()
           .applyMutation(awsClientProperties::applyClientRegionConfiguration)
           .applyMutation(httpClientProperties::applyHttpClientConfigurations)
-          .applyMutation(awsProperties::applyClientCredentialConfigurations)
+          
.applyMutation(awsClientProperties::applyClientCredentialConfigurations)
           .build();
     }
 
@@ -140,7 +140,7 @@ public class AwsClientFactories {
       return DynamoDbClient.builder()
           .applyMutation(awsClientProperties::applyClientRegionConfiguration)
           .applyMutation(httpClientProperties::applyHttpClientConfigurations)
-          .applyMutation(awsProperties::applyClientCredentialConfigurations)
+          
.applyMutation(awsClientProperties::applyClientCredentialConfigurations)
           .applyMutation(awsProperties::applyDynamoDbEndpointConfigurations)
           .build();
     }
diff --git a/aws/src/main/java/org/apache/iceberg/aws/AwsProperties.java 
b/aws/src/main/java/org/apache/iceberg/aws/AwsProperties.java
index 849445f86f..0d75e24516 100644
--- a/aws/src/main/java/org/apache/iceberg/aws/AwsProperties.java
+++ b/aws/src/main/java/org/apache/iceberg/aws/AwsProperties.java
@@ -20,7 +20,6 @@ package org.apache.iceberg.aws;
 
 import java.io.Serializable;
 import java.net.URI;
-import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -30,10 +29,8 @@ import org.apache.iceberg.common.DynClasses;
 import org.apache.iceberg.common.DynMethods;
 import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.relocated.com.google.common.base.Strings;
-import org.apache.iceberg.relocated.com.google.common.collect.Maps;
 import org.apache.iceberg.relocated.com.google.common.collect.Sets;
 import org.apache.iceberg.util.PropertyUtil;
-import org.apache.iceberg.util.SerializableMap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
@@ -41,7 +38,6 @@ import 
software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
 import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
 import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
-import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
 import software.amazon.awssdk.core.client.builder.SdkClientBuilder;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain;
@@ -215,7 +211,6 @@ public class AwsProperties implements Serializable {
   public static final String REST_SESSION_TOKEN = "rest.session-token";
 
   private static final String HTTP_CLIENT_PREFIX = "http-client.";
-  private final Map<String, String> httpClientProperties;
   private final Set<software.amazon.awssdk.services.sts.model.Tag> 
stsClientAssumeRoleTags;
 
   private String clientAssumeRoleArn;
@@ -223,7 +218,6 @@ public class AwsProperties implements Serializable {
   private int clientAssumeRoleTimeoutSec;
   private String clientAssumeRoleRegion;
   private String clientAssumeRoleSessionName;
-  private String clientRegion;
   private String clientCredentialsProvider;
   private final Map<String, String> clientCredentialsProviderProperties;
 
@@ -235,7 +229,6 @@ public class AwsProperties implements Serializable {
 
   private String dynamoDbTableName;
   private String dynamoDbEndpoint;
-  private final Map<String, String> allProperties;
 
   private String restSigningRegion;
   private String restSigningName;
@@ -244,7 +237,6 @@ public class AwsProperties implements Serializable {
   private String restSessionToken;
 
   public AwsProperties() {
-    this.httpClientProperties = Collections.emptyMap();
     this.stsClientAssumeRoleTags = Sets.newHashSet();
 
     this.clientAssumeRoleArn = null;
@@ -252,7 +244,6 @@ public class AwsProperties implements Serializable {
     this.clientAssumeRoleExternalId = null;
     this.clientAssumeRoleRegion = null;
     this.clientAssumeRoleSessionName = null;
-    this.clientRegion = null;
     this.clientCredentialsProvider = null;
     this.clientCredentialsProviderProperties = null;
 
@@ -265,15 +256,11 @@ public class AwsProperties implements Serializable {
     this.dynamoDbEndpoint = null;
     this.dynamoDbTableName = DYNAMODB_TABLE_NAME_DEFAULT;
 
-    this.allProperties = Maps.newHashMap();
-
     this.restSigningName = REST_SIGNING_NAME_DEFAULT;
   }
 
   @SuppressWarnings("MethodLength")
   public AwsProperties(Map<String, String> properties) {
-    this.httpClientProperties =
-        PropertyUtil.filterProperties(properties, key -> 
key.startsWith(HTTP_CLIENT_PREFIX));
     this.stsClientAssumeRoleTags = toStsTags(properties, 
CLIENT_ASSUME_ROLE_TAGS_PREFIX);
     this.clientAssumeRoleArn = properties.get(CLIENT_ASSUME_ROLE_ARN);
     this.clientAssumeRoleTimeoutSec =
@@ -282,7 +269,6 @@ public class AwsProperties implements Serializable {
     this.clientAssumeRoleExternalId = 
properties.get(CLIENT_ASSUME_ROLE_EXTERNAL_ID);
     this.clientAssumeRoleRegion = properties.get(CLIENT_ASSUME_ROLE_REGION);
     this.clientAssumeRoleSessionName = 
properties.get(CLIENT_ASSUME_ROLE_SESSION_NAME);
-    this.clientRegion = properties.get(AwsClientProperties.CLIENT_REGION);
     this.clientCredentialsProvider =
         properties.get(AwsClientProperties.CLIENT_CREDENTIALS_PROVIDER);
     this.clientCredentialsProviderProperties =
@@ -307,8 +293,6 @@ public class AwsProperties implements Serializable {
     this.dynamoDbTableName =
         PropertyUtil.propertyAsString(properties, DYNAMODB_TABLE_NAME, 
DYNAMODB_TABLE_NAME_DEFAULT);
 
-    this.allProperties = SerializableMap.copyOf(properties);
-
     this.restSigningRegion = properties.get(REST_SIGNER_REGION);
     this.restSigningName = properties.getOrDefault(REST_SIGNING_NAME, 
REST_SIGNING_NAME_DEFAULT);
     this.restAccessKeyId = properties.get(REST_ACCESS_KEY_ID);
@@ -380,40 +364,6 @@ public class AwsProperties implements Serializable {
     this.dynamoDbTableName = name;
   }
 
-  /** @deprecated will be removed in 1.5.0, use {@link HttpClientProperties} 
instead */
-  @Deprecated
-  public Map<String, String> httpClientProperties() {
-    return httpClientProperties;
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link 
AwsClientProperties#clientRegion()} instead
-   */
-  @Deprecated
-  public String clientRegion() {
-    return clientRegion;
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link 
AwsClientProperties#setClientRegion(String)}
-   *     instead
-   */
-  @Deprecated
-  public void setClientRegion(String clientRegion) {
-    this.clientRegion = clientRegion;
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link
-   *     
AwsClientProperties#applyClientCredentialConfigurations(AwsClientBuilder)} 
instead
-   */
-  @Deprecated
-  public <T extends AwsClientBuilder> void 
applyClientCredentialConfigurations(T builder) {
-    if (!Strings.isNullOrEmpty(this.clientCredentialsProvider)) {
-      
builder.credentialsProvider(credentialsProvider(this.clientCredentialsProvider));
-    }
-  }
-
   /**
    * Override the endpoint for a glue client.
    *
diff --git a/aws/src/test/java/org/apache/iceberg/aws/TestAwsProperties.java 
b/aws/src/test/java/org/apache/iceberg/aws/TestAwsProperties.java
index c4b9bd4d5b..510c84215e 100644
--- a/aws/src/test/java/org/apache/iceberg/aws/TestAwsProperties.java
+++ b/aws/src/test/java/org/apache/iceberg/aws/TestAwsProperties.java
@@ -18,8 +18,10 @@
  */
 package org.apache.iceberg.aws;
 
+import static org.apache.iceberg.aws.AwsProperties.DYNAMODB_TABLE_NAME;
+import static org.apache.iceberg.aws.AwsProperties.GLUE_CATALOG_ID;
+
 import java.io.IOException;
-import java.util.Collections;
 import org.apache.iceberg.TestHelpers;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
 import org.assertj.core.api.Assertions;
@@ -29,22 +31,13 @@ public class TestAwsProperties {
 
   @Test
   public void testKryoSerialization() throws IOException {
-    AwsProperties awsProperties = new AwsProperties();
-    AwsProperties deSerializedAwsProperties =
-        TestHelpers.KryoHelpers.roundTripSerialize(awsProperties);
-    Assertions.assertThat(deSerializedAwsProperties.httpClientProperties())
-        .isEqualTo(awsProperties.httpClientProperties());
-
-    AwsProperties awsPropertiesWithProps = new 
AwsProperties(ImmutableMap.of("a", "b"));
+    AwsProperties awsPropertiesWithProps =
+        new AwsProperties(ImmutableMap.of(GLUE_CATALOG_ID, "foo", 
DYNAMODB_TABLE_NAME, "ice"));
     AwsProperties deSerializedAwsPropertiesWithProps =
         TestHelpers.KryoHelpers.roundTripSerialize(awsPropertiesWithProps);
-    
Assertions.assertThat(deSerializedAwsPropertiesWithProps.httpClientProperties())
-        .isEqualTo(awsProperties.httpClientProperties());
-
-    AwsProperties awsPropertiesWithEmptyProps = new 
AwsProperties(Collections.emptyMap());
-    AwsProperties deSerializedAwsPropertiesWithEmptyProps =
-        TestHelpers.KryoHelpers.roundTripSerialize(awsPropertiesWithProps);
-    
Assertions.assertThat(deSerializedAwsPropertiesWithEmptyProps.httpClientProperties())
-        .isEqualTo(awsProperties.httpClientProperties());
+    Assertions.assertThat(deSerializedAwsPropertiesWithProps.glueCatalogId())
+        .isEqualTo(awsPropertiesWithProps.glueCatalogId());
+    
Assertions.assertThat(deSerializedAwsPropertiesWithProps.dynamoDbTableName())
+        .isEqualTo(awsPropertiesWithProps.dynamoDbTableName());
   }
 }
diff --git 
a/aws/src/test/java/org/apache/iceberg/aws/TestHttpClientConfigurations.java 
b/aws/src/test/java/org/apache/iceberg/aws/TestHttpClientConfigurations.java
index 8ad4cc9538..17ac7ca728 100644
--- a/aws/src/test/java/org/apache/iceberg/aws/TestHttpClientConfigurations.java
+++ b/aws/src/test/java/org/apache/iceberg/aws/TestHttpClientConfigurations.java
@@ -34,9 +34,8 @@ public class TestHttpClientConfigurations {
     properties.put(HttpClientProperties.URLCONNECTION_CONNECTION_TIMEOUT_MS, 
"80");
     properties.put(HttpClientProperties.APACHE_SOCKET_TIMEOUT_MS, "100");
     properties.put(HttpClientProperties.APACHE_CONNECTION_TIMEOUT_MS, "200");
-    AwsProperties awsProperties = new AwsProperties(properties);
     UrlConnectionHttpClientConfigurations 
urlConnectionHttpClientConfigurations =
-        
UrlConnectionHttpClientConfigurations.create(awsProperties.httpClientProperties());
+        UrlConnectionHttpClientConfigurations.create(properties);
     UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
         UrlConnectionHttpClient.builder();
     UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
@@ -51,10 +50,8 @@ public class TestHttpClientConfigurations {
 
   @Test
   public void testUrlConnectionDefaultConfigurations() {
-    Map<String, String> properties = Maps.newHashMap();
-    AwsProperties awsProperties = new AwsProperties(properties);
     UrlConnectionHttpClientConfigurations 
urlConnectionHttpClientConfigurations =
-        
UrlConnectionHttpClientConfigurations.create(awsProperties.httpClientProperties());
+        UrlConnectionHttpClientConfigurations.create(Maps.newHashMap());
     UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
         UrlConnectionHttpClient.builder();
     UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
@@ -83,9 +80,8 @@ public class TestHttpClientConfigurations {
     properties.put(HttpClientProperties.APACHE_MAX_CONNECTIONS, "104");
     properties.put(HttpClientProperties.APACHE_TCP_KEEP_ALIVE_ENABLED, "true");
     
properties.put(HttpClientProperties.APACHE_USE_IDLE_CONNECTION_REAPER_ENABLED, 
"false");
-    AwsProperties awsProperties = new AwsProperties(properties);
     ApacheHttpClientConfigurations apacheHttpClientConfigurations =
-        
ApacheHttpClientConfigurations.create(awsProperties.httpClientProperties());
+        ApacheHttpClientConfigurations.create(properties);
     ApacheHttpClient.Builder apacheHttpClientBuilder = 
ApacheHttpClient.builder();
     ApacheHttpClient.Builder spyApacheHttpClientBuilder = 
Mockito.spy(apacheHttpClientBuilder);
 
@@ -104,10 +100,8 @@ public class TestHttpClientConfigurations {
 
   @Test
   public void testApacheDefaultConfigurations() {
-    Map<String, String> properties = Maps.newHashMap();
-    AwsProperties awsProperties = new AwsProperties(properties);
     ApacheHttpClientConfigurations apacheHttpClientConfigurations =
-        
ApacheHttpClientConfigurations.create(awsProperties.httpClientProperties());
+        ApacheHttpClientConfigurations.create(Maps.newHashMap());
     ApacheHttpClient.Builder apacheHttpClientBuilder = 
ApacheHttpClient.builder();
     ApacheHttpClient.Builder spyApacheHttpClientBuilder = 
Mockito.spy(apacheHttpClientBuilder);
 
diff --git a/core/src/main/java/org/apache/iceberg/PositionDeletesTable.java 
b/core/src/main/java/org/apache/iceberg/PositionDeletesTable.java
index 68f2e0d452..5627063580 100644
--- a/core/src/main/java/org/apache/iceberg/PositionDeletesTable.java
+++ b/core/src/main/java/org/apache/iceberg/PositionDeletesTable.java
@@ -150,12 +150,6 @@ public class PositionDeletesTable extends 
BaseMetadataTable {
       super(table, schema, TableScanContext.empty());
     }
 
-    /** @deprecated the API will be removed in v1.5.0 */
-    @Deprecated
-    protected PositionDeletesBatchScan(Table table, Schema schema, 
TableScanContext context) {
-      super(table, schema, context);
-    }
-
     protected PositionDeletesBatchScan(
         Table table, Schema schema, TableScanContext context, Expression 
baseTableFilter) {
       super(table, schema, context);
diff --git a/core/src/main/java/org/apache/iceberg/io/ClusteredWriter.java 
b/core/src/main/java/org/apache/iceberg/io/ClusteredWriter.java
index 12ceda1bfd..1dc4871f0a 100644
--- a/core/src/main/java/org/apache/iceberg/io/ClusteredWriter.java
+++ b/core/src/main/java/org/apache/iceberg/io/ClusteredWriter.java
@@ -24,7 +24,6 @@ import java.util.Comparator;
 import java.util.Set;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
-import org.apache.iceberg.encryption.EncryptedOutputFile;
 import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.relocated.com.google.common.collect.Sets;
 import org.apache.iceberg.types.Comparators;
@@ -131,18 +130,4 @@ abstract class ClusteredWriter<T, R> implements 
PartitioningWriter<T, R> {
     Preconditions.checkState(closed, "Cannot get result from unclosed writer");
     return aggregatedResult();
   }
-
-  /** @deprecated will be removed in 1.5.0 */
-  @Deprecated
-  protected EncryptedOutputFile newOutputFile(
-      OutputFileFactory fileFactory, PartitionSpec spec, StructLike partition) 
{
-    Preconditions.checkArgument(
-        spec.isUnpartitioned() || partition != null,
-        "Partition must not be null when creating output file for partitioned 
spec");
-    if (spec.isUnpartitioned() || partition == null) {
-      return fileFactory.newOutputFile();
-    } else {
-      return fileFactory.newOutputFile(spec, partition);
-    }
-  }
 }
diff --git a/core/src/main/java/org/apache/iceberg/io/FanoutWriter.java 
b/core/src/main/java/org/apache/iceberg/io/FanoutWriter.java
index 9b88e4011c..95d5cc1afc 100644
--- a/core/src/main/java/org/apache/iceberg/io/FanoutWriter.java
+++ b/core/src/main/java/org/apache/iceberg/io/FanoutWriter.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.Map;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
-import org.apache.iceberg.encryption.EncryptedOutputFile;
 import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.relocated.com.google.common.collect.Maps;
 import org.apache.iceberg.util.StructLikeMap;
@@ -94,18 +93,4 @@ abstract class FanoutWriter<T, R> implements 
PartitioningWriter<T, R> {
     Preconditions.checkState(closed, "Cannot get result from unclosed writer");
     return aggregatedResult();
   }
-
-  /** @deprecated will be removed in 1.5.0 */
-  @Deprecated
-  protected EncryptedOutputFile newOutputFile(
-      OutputFileFactory fileFactory, PartitionSpec spec, StructLike partition) 
{
-    Preconditions.checkArgument(
-        spec.isUnpartitioned() || partition != null,
-        "Partition must not be null when creating output file for partitioned 
spec");
-    if (spec.isUnpartitioned() || partition == null) {
-      return fileFactory.newOutputFile();
-    } else {
-      return fileFactory.newOutputFile(spec, partition);
-    }
-  }
 }
diff --git a/core/src/main/java/org/apache/iceberg/rest/RESTSerializers.java 
b/core/src/main/java/org/apache/iceberg/rest/RESTSerializers.java
index 7d4f327b67..4311b9aa77 100644
--- a/core/src/main/java/org/apache/iceberg/rest/RESTSerializers.java
+++ b/core/src/main/java/org/apache/iceberg/rest/RESTSerializers.java
@@ -53,9 +53,7 @@ import org.apache.iceberg.rest.requests.RegisterTableRequest;
 import org.apache.iceberg.rest.requests.RegisterTableRequestParser;
 import org.apache.iceberg.rest.requests.ReportMetricsRequest;
 import org.apache.iceberg.rest.requests.ReportMetricsRequestParser;
-import org.apache.iceberg.rest.requests.UpdateRequirementParser;
 import org.apache.iceberg.rest.requests.UpdateTableRequest;
-import org.apache.iceberg.rest.requests.UpdateTableRequest.UpdateRequirement;
 import org.apache.iceberg.rest.requests.UpdateTableRequestParser;
 import org.apache.iceberg.rest.responses.ErrorResponse;
 import org.apache.iceberg.rest.responses.ErrorResponseParser;
@@ -88,8 +86,6 @@ public class RESTSerializers {
         .addDeserializer(MetadataUpdate.class, new 
MetadataUpdateDeserializer())
         .addSerializer(TableMetadata.class, new TableMetadataSerializer())
         .addDeserializer(TableMetadata.class, new TableMetadataDeserializer())
-        .addSerializer(UpdateRequirement.class, new 
UpdateRequirementSerializer())
-        .addDeserializer(UpdateRequirement.class, new 
UpdateRequirementDeserializer())
         .addSerializer(org.apache.iceberg.UpdateRequirement.class, new 
UpdateReqSerializer())
         .addDeserializer(org.apache.iceberg.UpdateRequirement.class, new 
UpdateReqDeserializer())
         .addSerializer(OAuthTokenResponse.class, new 
OAuthTokenResponseSerializer())
@@ -120,28 +116,6 @@ public class RESTSerializers {
     mapper.registerModule(module);
   }
 
-  /** @deprecated will be removed in 1.5.0, use {@link UpdateReqDeserializer} 
instead. */
-  @Deprecated
-  public static class UpdateRequirementDeserializer extends 
JsonDeserializer<UpdateRequirement> {
-    @Override
-    public UpdateRequirement deserialize(JsonParser p, DeserializationContext 
ctxt)
-        throws IOException {
-      JsonNode node = p.getCodec().readTree(p);
-      return UpdateRequirementParser.fromJson(node);
-    }
-  }
-
-  /** @deprecated will be removed in 1.5.0, use {@link UpdateReqSerializer} 
instead. */
-  @Deprecated
-  public static class UpdateRequirementSerializer extends 
JsonSerializer<UpdateRequirement> {
-    @Override
-    public void serialize(
-        UpdateRequirement value, JsonGenerator gen, SerializerProvider 
serializers)
-        throws IOException {
-      UpdateRequirementParser.toJson(value, gen);
-    }
-  }
-
   static class UpdateReqDeserializer
       extends JsonDeserializer<org.apache.iceberg.UpdateRequirement> {
     @Override
diff --git 
a/core/src/main/java/org/apache/iceberg/rest/requests/UpdateRequirementParser.java
 
b/core/src/main/java/org/apache/iceberg/rest/requests/UpdateRequirementParser.java
deleted file mode 100644
index 2df522b9aa..0000000000
--- 
a/core/src/main/java/org/apache/iceberg/rest/requests/UpdateRequirementParser.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iceberg.rest.requests;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.JsonNode;
-import java.io.IOException;
-import java.util.Locale;
-import java.util.Map;
-import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
-import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
-import org.apache.iceberg.rest.requests.UpdateTableRequest.UpdateRequirement;
-import org.apache.iceberg.util.JsonUtil;
-
-/**
- * @deprecated will be removed in 1.5.0, use {@link 
org.apache.iceberg.UpdateRequirementParser}
- *     instead.
- */
-@Deprecated
-public class UpdateRequirementParser {
-
-  private UpdateRequirementParser() {}
-
-  private static final String TYPE = "type";
-
-  // assertion types
-  static final String ASSERT_TABLE_UUID = "assert-table-uuid";
-  static final String ASSERT_TABLE_DOES_NOT_EXIST = "assert-create";
-  static final String ASSERT_REF_SNAPSHOT_ID = "assert-ref-snapshot-id";
-  static final String ASSERT_LAST_ASSIGNED_FIELD_ID = 
"assert-last-assigned-field-id";
-  static final String ASSERT_CURRENT_SCHEMA_ID = "assert-current-schema-id";
-  static final String ASSERT_LAST_ASSIGNED_PARTITION_ID = 
"assert-last-assigned-partition-id";
-  static final String ASSERT_DEFAULT_SPEC_ID = "assert-default-spec-id";
-  static final String ASSERT_DEFAULT_SORT_ORDER_ID = 
"assert-default-sort-order-id";
-
-  // AssertTableUUID
-  private static final String UUID = "uuid";
-
-  // AssertRefSnapshotID
-  private static final String NAME = "ref";
-  private static final String SNAPSHOT_ID = "snapshot-id";
-
-  // AssertLastAssignedFieldId
-  private static final String LAST_ASSIGNED_FIELD_ID = 
"last-assigned-field-id";
-
-  // AssertCurrentSchemaID
-  private static final String SCHEMA_ID = "current-schema-id";
-
-  // AssertLastAssignedPartitionId
-  private static final String LAST_ASSIGNED_PARTITION_ID = 
"last-assigned-partition-id";
-
-  // AssertDefaultSpecID
-  private static final String SPEC_ID = "default-spec-id";
-
-  // AssertDefaultSortOrderID
-  private static final String SORT_ORDER_ID = "default-sort-order-id";
-
-  private static final Map<Class<? extends 
UpdateTableRequest.UpdateRequirement>, String> TYPES =
-      ImmutableMap.<Class<? extends UpdateTableRequest.UpdateRequirement>, 
String>builder()
-          .put(UpdateRequirement.AssertTableUUID.class, ASSERT_TABLE_UUID)
-          .put(UpdateRequirement.AssertTableDoesNotExist.class, 
ASSERT_TABLE_DOES_NOT_EXIST)
-          .put(UpdateRequirement.AssertRefSnapshotID.class, 
ASSERT_REF_SNAPSHOT_ID)
-          .put(UpdateRequirement.AssertLastAssignedFieldId.class, 
ASSERT_LAST_ASSIGNED_FIELD_ID)
-          .put(UpdateRequirement.AssertCurrentSchemaID.class, 
ASSERT_CURRENT_SCHEMA_ID)
-          .put(
-              UpdateRequirement.AssertLastAssignedPartitionId.class,
-              ASSERT_LAST_ASSIGNED_PARTITION_ID)
-          .put(UpdateRequirement.AssertDefaultSpecID.class, 
ASSERT_DEFAULT_SPEC_ID)
-          .put(UpdateRequirement.AssertDefaultSortOrderID.class, 
ASSERT_DEFAULT_SORT_ORDER_ID)
-          .buildOrThrow();
-
-  public static String toJson(UpdateRequirement updateRequirement) {
-    return toJson(updateRequirement, false);
-  }
-
-  public static String toJson(UpdateRequirement updateRequirement, boolean 
pretty) {
-    return JsonUtil.generate(gen -> toJson(updateRequirement, gen), pretty);
-  }
-
-  public static void toJson(UpdateRequirement updateRequirement, JsonGenerator 
generator)
-      throws IOException {
-    String requirementType = TYPES.get(updateRequirement.getClass());
-
-    generator.writeStartObject();
-    generator.writeStringField(TYPE, requirementType);
-
-    switch (requirementType) {
-      case ASSERT_TABLE_DOES_NOT_EXIST:
-        // No fields beyond the requirement itself
-        break;
-      case ASSERT_TABLE_UUID:
-        writeAssertTableUUID((UpdateRequirement.AssertTableUUID) 
updateRequirement, generator);
-        break;
-      case ASSERT_REF_SNAPSHOT_ID:
-        writeAssertRefSnapshotId(
-            (UpdateRequirement.AssertRefSnapshotID) updateRequirement, 
generator);
-        break;
-      case ASSERT_LAST_ASSIGNED_FIELD_ID:
-        writeAssertLastAssignedFieldId(
-            (UpdateRequirement.AssertLastAssignedFieldId) updateRequirement, 
generator);
-        break;
-      case ASSERT_LAST_ASSIGNED_PARTITION_ID:
-        writeAssertLastAssignedPartitionId(
-            (UpdateRequirement.AssertLastAssignedPartitionId) 
updateRequirement, generator);
-        break;
-      case ASSERT_CURRENT_SCHEMA_ID:
-        writeAssertCurrentSchemaId(
-            (UpdateRequirement.AssertCurrentSchemaID) updateRequirement, 
generator);
-        break;
-      case ASSERT_DEFAULT_SPEC_ID:
-        writeAssertDefaultSpecId(
-            (UpdateRequirement.AssertDefaultSpecID) updateRequirement, 
generator);
-        break;
-      case ASSERT_DEFAULT_SORT_ORDER_ID:
-        writeAssertDefaultSortOrderId(
-            (UpdateRequirement.AssertDefaultSortOrderID) updateRequirement, 
generator);
-        break;
-      default:
-        throw new IllegalArgumentException(
-            String.format(
-                "Cannot convert update requirement to json. Unrecognized type: 
%s",
-                requirementType));
-    }
-
-    generator.writeEndObject();
-  }
-
-  /**
-   * Read MetadataUpdate from a JSON string.
-   *
-   * @param json a JSON string of a MetadataUpdate
-   * @return a MetadataUpdate object
-   */
-  public static UpdateRequirement fromJson(String json) {
-    return JsonUtil.parse(json, UpdateRequirementParser::fromJson);
-  }
-
-  public static UpdateRequirement fromJson(JsonNode jsonNode) {
-    Preconditions.checkArgument(
-        jsonNode != null && jsonNode.isObject(),
-        "Cannot parse update requirement from non-object value: %s",
-        jsonNode);
-    Preconditions.checkArgument(
-        jsonNode.hasNonNull(TYPE), "Cannot parse update requirement. Missing 
field: type");
-    String type = JsonUtil.getString(TYPE, jsonNode).toLowerCase(Locale.ROOT);
-
-    switch (type) {
-      case ASSERT_TABLE_DOES_NOT_EXIST:
-        return readAssertTableDoesNotExist(jsonNode);
-      case ASSERT_TABLE_UUID:
-        return readAssertTableUUID(jsonNode);
-      case ASSERT_REF_SNAPSHOT_ID:
-        return readAssertRefSnapshotId(jsonNode);
-      case ASSERT_LAST_ASSIGNED_FIELD_ID:
-        return readAssertLastAssignedFieldId(jsonNode);
-      case ASSERT_LAST_ASSIGNED_PARTITION_ID:
-        return readAssertLastAssignedPartitionId(jsonNode);
-      case ASSERT_CURRENT_SCHEMA_ID:
-        return readAssertCurrentSchemaId(jsonNode);
-      case ASSERT_DEFAULT_SPEC_ID:
-        return readAssertDefaultSpecId(jsonNode);
-      case ASSERT_DEFAULT_SORT_ORDER_ID:
-        return readAssertDefaultSortOrderId(jsonNode);
-      default:
-        throw new UnsupportedOperationException(
-            String.format("Unrecognized update requirement. Cannot convert to 
json: %s", type));
-    }
-  }
-
-  private static void writeAssertTableUUID(
-      UpdateRequirement.AssertTableUUID requirement, JsonGenerator gen) throws 
IOException {
-    gen.writeStringField(UUID, requirement.uuid());
-  }
-
-  private static void writeAssertRefSnapshotId(
-      UpdateRequirement.AssertRefSnapshotID requirement, JsonGenerator gen) 
throws IOException {
-    gen.writeStringField(NAME, requirement.refName());
-    if (requirement.snapshotId() != null) {
-      gen.writeNumberField(SNAPSHOT_ID, requirement.snapshotId());
-    } else {
-      gen.writeNullField(SNAPSHOT_ID);
-    }
-  }
-
-  private static void writeAssertLastAssignedFieldId(
-      UpdateRequirement.AssertLastAssignedFieldId requirement, JsonGenerator 
gen)
-      throws IOException {
-    gen.writeNumberField(LAST_ASSIGNED_FIELD_ID, 
requirement.lastAssignedFieldId());
-  }
-
-  private static void writeAssertLastAssignedPartitionId(
-      UpdateRequirement.AssertLastAssignedPartitionId requirement, 
JsonGenerator gen)
-      throws IOException {
-    gen.writeNumberField(LAST_ASSIGNED_PARTITION_ID, 
requirement.lastAssignedPartitionId());
-  }
-
-  private static void writeAssertCurrentSchemaId(
-      UpdateRequirement.AssertCurrentSchemaID requirement, JsonGenerator gen) 
throws IOException {
-    gen.writeNumberField(SCHEMA_ID, requirement.schemaId());
-  }
-
-  private static void writeAssertDefaultSpecId(
-      UpdateRequirement.AssertDefaultSpecID requirement, JsonGenerator gen) 
throws IOException {
-    gen.writeNumberField(SPEC_ID, requirement.specId());
-  }
-
-  private static void writeAssertDefaultSortOrderId(
-      UpdateRequirement.AssertDefaultSortOrderID requirement, JsonGenerator 
gen)
-      throws IOException {
-    gen.writeNumberField(SORT_ORDER_ID, requirement.sortOrderId());
-  }
-
-  @SuppressWarnings(
-      "unused") // Keep same signature in case this requirement class evolves 
and gets fields
-  private static UpdateRequirement readAssertTableDoesNotExist(JsonNode node) {
-    return new UpdateRequirement.AssertTableDoesNotExist();
-  }
-
-  private static UpdateRequirement readAssertTableUUID(JsonNode node) {
-    String uuid = JsonUtil.getString(UUID, node);
-    return new UpdateRequirement.AssertTableUUID(uuid);
-  }
-
-  private static UpdateRequirement readAssertRefSnapshotId(JsonNode node) {
-    String name = JsonUtil.getString(NAME, node);
-    Long snapshotId = JsonUtil.getLongOrNull(SNAPSHOT_ID, node);
-    return new UpdateRequirement.AssertRefSnapshotID(name, snapshotId);
-  }
-
-  private static UpdateRequirement readAssertLastAssignedFieldId(JsonNode 
node) {
-    int lastAssignedFieldId = JsonUtil.getInt(LAST_ASSIGNED_FIELD_ID, node);
-    return new 
UpdateRequirement.AssertLastAssignedFieldId(lastAssignedFieldId);
-  }
-
-  private static UpdateRequirement readAssertCurrentSchemaId(JsonNode node) {
-    int schemaId = JsonUtil.getInt(SCHEMA_ID, node);
-    return new UpdateRequirement.AssertCurrentSchemaID(schemaId);
-  }
-
-  private static UpdateRequirement readAssertLastAssignedPartitionId(JsonNode 
node) {
-    int lastAssignedPartitionId = JsonUtil.getInt(LAST_ASSIGNED_PARTITION_ID, 
node);
-    return new 
UpdateRequirement.AssertLastAssignedPartitionId(lastAssignedPartitionId);
-  }
-
-  private static UpdateRequirement readAssertDefaultSpecId(JsonNode node) {
-    int specId = JsonUtil.getInt(SPEC_ID, node);
-    return new UpdateRequirement.AssertDefaultSpecID(specId);
-  }
-
-  private static UpdateRequirement readAssertDefaultSortOrderId(JsonNode node) 
{
-    int sortOrderId = JsonUtil.getInt(SORT_ORDER_ID, node);
-    return new UpdateRequirement.AssertDefaultSortOrderID(sortOrderId);
-  }
-}
diff --git 
a/core/src/main/java/org/apache/iceberg/rest/requests/UpdateTableRequest.java 
b/core/src/main/java/org/apache/iceberg/rest/requests/UpdateTableRequest.java
index 088875d472..d077defa59 100644
--- 
a/core/src/main/java/org/apache/iceberg/rest/requests/UpdateTableRequest.java
+++ 
b/core/src/main/java/org/apache/iceberg/rest/requests/UpdateTableRequest.java
@@ -19,17 +19,10 @@
 package org.apache.iceberg.rest.requests;
 
 import java.util.List;
-import java.util.Set;
 import org.apache.iceberg.MetadataUpdate;
-import org.apache.iceberg.SnapshotRef;
-import org.apache.iceberg.TableMetadata;
 import org.apache.iceberg.catalog.TableIdentifier;
-import org.apache.iceberg.exceptions.CommitFailedException;
 import org.apache.iceberg.relocated.com.google.common.base.MoreObjects;
-import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
-import org.apache.iceberg.relocated.com.google.common.collect.Lists;
-import org.apache.iceberg.relocated.com.google.common.collect.Sets;
 import org.apache.iceberg.rest.RESTRequest;
 
 public class UpdateTableRequest implements RESTRequest {
@@ -85,363 +78,4 @@ public class UpdateTableRequest implements RESTRequest {
       List<MetadataUpdate> updates) {
     return new UpdateTableRequest(identifier, requirements, updates);
   }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link
-   *     org.apache.iceberg.UpdateRequirements#forCreateTable(List)} instead.
-   */
-  @Deprecated
-  public static Builder builderForCreate() {
-    return new Builder(null, false).requireCreate();
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link
-   *     org.apache.iceberg.UpdateRequirements#forReplaceTable(TableMetadata, 
List)} instead.
-   */
-  @Deprecated
-  public static Builder builderForReplace(TableMetadata base) {
-    Preconditions.checkNotNull(base, "Cannot create a builder from table 
metadata: null");
-    return new Builder(base, true).requireTableUUID(base.uuid());
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link
-   *     org.apache.iceberg.UpdateRequirements#forUpdateTable(TableMetadata, 
List)} instead.
-   */
-  @Deprecated
-  public static Builder builderFor(TableMetadata base) {
-    Preconditions.checkNotNull(base, "Cannot create a builder from table 
metadata: null");
-    return new Builder(base, false).requireTableUUID(base.uuid());
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link 
org.apache.iceberg.UpdateRequirements}
-   *     instead.
-   */
-  @Deprecated
-  public static class Builder {
-    private final TableMetadata base;
-    private final ImmutableList.Builder<org.apache.iceberg.UpdateRequirement> 
requirements =
-        ImmutableList.builder();
-    private final List<MetadataUpdate> updates = Lists.newArrayList();
-    private final Set<String> changedRefs = Sets.newHashSet();
-    private final boolean isReplace;
-    private boolean addedSchema = false;
-    private boolean setSchemaId = false;
-    private boolean addedSpec = false;
-    private boolean setSpecId = false;
-    private boolean setOrderId = false;
-
-    public Builder(TableMetadata base, boolean isReplace) {
-      this.base = base;
-      this.isReplace = isReplace;
-    }
-
-    private Builder require(UpdateRequirement requirement) {
-      Preconditions.checkArgument(requirement != null, "Invalid requirement: 
null");
-      requirements.add(requirement);
-      return this;
-    }
-
-    private Builder requireCreate() {
-      return require(new UpdateRequirement.AssertTableDoesNotExist());
-    }
-
-    private Builder requireTableUUID(String uuid) {
-      Preconditions.checkArgument(uuid != null, "Invalid required UUID: null");
-      return require(new UpdateRequirement.AssertTableUUID(uuid));
-    }
-
-    private Builder requireRefSnapshotId(String ref, Long snapshotId) {
-      return require(new UpdateRequirement.AssertRefSnapshotID(ref, 
snapshotId));
-    }
-
-    private Builder requireLastAssignedFieldId(int fieldId) {
-      return require(new UpdateRequirement.AssertLastAssignedFieldId(fieldId));
-    }
-
-    private Builder requireCurrentSchemaId(int schemaId) {
-      return require(new UpdateRequirement.AssertCurrentSchemaID(schemaId));
-    }
-
-    private Builder requireLastAssignedPartitionId(int partitionId) {
-      return require(new 
UpdateRequirement.AssertLastAssignedPartitionId(partitionId));
-    }
-
-    private Builder requireDefaultSpecId(int specId) {
-      return require(new UpdateRequirement.AssertDefaultSpecID(specId));
-    }
-
-    private Builder requireDefaultSortOrderId(int orderId) {
-      return require(new UpdateRequirement.AssertDefaultSortOrderID(orderId));
-    }
-
-    public Builder update(MetadataUpdate update) {
-      Preconditions.checkArgument(update != null, "Invalid update: null");
-      updates.add(update);
-
-      // add requirements based on the change
-      if (update instanceof MetadataUpdate.SetSnapshotRef) {
-        update((MetadataUpdate.SetSnapshotRef) update);
-      } else if (update instanceof MetadataUpdate.AddSchema) {
-        update((MetadataUpdate.AddSchema) update);
-      } else if (update instanceof MetadataUpdate.SetCurrentSchema) {
-        update((MetadataUpdate.SetCurrentSchema) update);
-      } else if (update instanceof MetadataUpdate.AddPartitionSpec) {
-        update((MetadataUpdate.AddPartitionSpec) update);
-      } else if (update instanceof MetadataUpdate.SetDefaultPartitionSpec) {
-        update((MetadataUpdate.SetDefaultPartitionSpec) update);
-      } else if (update instanceof MetadataUpdate.SetDefaultSortOrder) {
-        update((MetadataUpdate.SetDefaultSortOrder) update);
-      }
-
-      return this;
-    }
-
-    private void update(MetadataUpdate.SetSnapshotRef setRef) {
-      // require that the ref is unchanged from the base
-      String name = setRef.name();
-      // add returns true the first time the ref name is added
-      boolean added = changedRefs.add(name);
-      if (added && base != null && !isReplace) {
-        SnapshotRef baseRef = base.ref(name);
-        // require that the ref does not exist (null) or is the same as the 
base snapshot
-        requireRefSnapshotId(name, baseRef != null ? baseRef.snapshotId() : 
null);
-      }
-    }
-
-    private void update(MetadataUpdate.AddSchema update) {
-      if (!addedSchema) {
-        if (base != null) {
-          requireLastAssignedFieldId(base.lastColumnId());
-        }
-        this.addedSchema = true;
-      }
-    }
-
-    private void update(MetadataUpdate.SetCurrentSchema update) {
-      if (!setSchemaId) {
-        if (base != null && !isReplace) {
-          // require that the current schema has not changed
-          requireCurrentSchemaId(base.currentSchemaId());
-        }
-        this.setSchemaId = true;
-      }
-    }
-
-    private void update(MetadataUpdate.AddPartitionSpec update) {
-      if (!addedSpec) {
-        if (base != null) {
-          requireLastAssignedPartitionId(base.lastAssignedPartitionId());
-        }
-        this.addedSpec = true;
-      }
-    }
-
-    private void update(MetadataUpdate.SetDefaultPartitionSpec update) {
-      if (!setSpecId) {
-        if (base != null && !isReplace) {
-          // require that the default spec has not changed
-          requireDefaultSpecId(base.defaultSpecId());
-        }
-        this.setSpecId = true;
-      }
-    }
-
-    private void update(MetadataUpdate.SetDefaultSortOrder update) {
-      if (!setOrderId) {
-        if (base != null && !isReplace) {
-          // require that the default write order has not changed
-          requireDefaultSortOrderId(base.defaultSortOrderId());
-        }
-        this.setOrderId = true;
-      }
-    }
-
-    public UpdateTableRequest build() {
-      return new UpdateTableRequest(requirements.build(), 
ImmutableList.copyOf(updates));
-    }
-  }
-
-  /**
-   * @deprecated will be removed in 1.5.0, use {@link 
org.apache.iceberg.UpdateRequirement} instead.
-   */
-  @Deprecated
-  public interface UpdateRequirement extends 
org.apache.iceberg.UpdateRequirement {
-
-    class AssertTableDoesNotExist implements UpdateRequirement {
-      AssertTableDoesNotExist() {}
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (base != null) {
-          throw new CommitFailedException("Requirement failed: table already 
exists");
-        }
-      }
-    }
-
-    class AssertTableUUID implements UpdateRequirement {
-      private final String uuid;
-
-      AssertTableUUID(String uuid) {
-        this.uuid = uuid;
-      }
-
-      public String uuid() {
-        return uuid;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (!uuid.equalsIgnoreCase(base.uuid())) {
-          throw new CommitFailedException(
-              "Requirement failed: UUID does not match: expected %s != %s", 
base.uuid(), uuid);
-        }
-      }
-    }
-
-    class AssertRefSnapshotID implements UpdateRequirement {
-      private final String name;
-      private final Long snapshotId;
-
-      AssertRefSnapshotID(String name, Long snapshotId) {
-        this.name = name;
-        this.snapshotId = snapshotId;
-      }
-
-      public String refName() {
-        return name;
-      }
-
-      public Long snapshotId() {
-        return snapshotId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        SnapshotRef ref = base.ref(name);
-        if (ref != null) {
-          String type = ref.isBranch() ? "branch" : "tag";
-          if (snapshotId == null) {
-            // a null snapshot ID means the ref should not exist already
-            throw new CommitFailedException(
-                "Requirement failed: %s %s was created concurrently", type, 
name);
-          } else if (snapshotId != ref.snapshotId()) {
-            throw new CommitFailedException(
-                "Requirement failed: %s %s has changed: expected id %s != %s",
-                type, name, snapshotId, ref.snapshotId());
-          }
-        } else if (snapshotId != null) {
-          throw new CommitFailedException(
-              "Requirement failed: branch or tag %s is missing, expected %s", 
name, snapshotId);
-        }
-      }
-    }
-
-    class AssertLastAssignedFieldId implements UpdateRequirement {
-      private final int lastAssignedFieldId;
-
-      public AssertLastAssignedFieldId(int lastAssignedFieldId) {
-        this.lastAssignedFieldId = lastAssignedFieldId;
-      }
-
-      public int lastAssignedFieldId() {
-        return lastAssignedFieldId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (base != null && base.lastColumnId() != lastAssignedFieldId) {
-          throw new CommitFailedException(
-              "Requirement failed: last assigned field id changed: expected id 
%s != %s",
-              lastAssignedFieldId, base.lastColumnId());
-        }
-      }
-    }
-
-    class AssertCurrentSchemaID implements UpdateRequirement {
-      private final int schemaId;
-
-      AssertCurrentSchemaID(int schemaId) {
-        this.schemaId = schemaId;
-      }
-
-      public int schemaId() {
-        return schemaId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (schemaId != base.currentSchemaId()) {
-          throw new CommitFailedException(
-              "Requirement failed: current schema changed: expected id %s != 
%s",
-              schemaId, base.currentSchemaId());
-        }
-      }
-    }
-
-    class AssertLastAssignedPartitionId implements UpdateRequirement {
-      private final int lastAssignedPartitionId;
-
-      public AssertLastAssignedPartitionId(int lastAssignedPartitionId) {
-        this.lastAssignedPartitionId = lastAssignedPartitionId;
-      }
-
-      public int lastAssignedPartitionId() {
-        return lastAssignedPartitionId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (base != null && base.lastAssignedPartitionId() != 
lastAssignedPartitionId) {
-          throw new CommitFailedException(
-              "Requirement failed: last assigned partition id changed: 
expected id %s != %s",
-              lastAssignedPartitionId, base.lastAssignedPartitionId());
-        }
-      }
-    }
-
-    class AssertDefaultSpecID implements UpdateRequirement {
-      private final int specId;
-
-      AssertDefaultSpecID(int specId) {
-        this.specId = specId;
-      }
-
-      public int specId() {
-        return specId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (specId != base.defaultSpecId()) {
-          throw new CommitFailedException(
-              "Requirement failed: default partition spec changed: expected id 
%s != %s",
-              specId, base.defaultSpecId());
-        }
-      }
-    }
-
-    class AssertDefaultSortOrderID implements UpdateRequirement {
-      private final int sortOrderId;
-
-      AssertDefaultSortOrderID(int sortOrderId) {
-        this.sortOrderId = sortOrderId;
-      }
-
-      public int sortOrderId() {
-        return sortOrderId;
-      }
-
-      @Override
-      public void validate(TableMetadata base) {
-        if (sortOrderId != base.defaultSortOrderId()) {
-          throw new CommitFailedException(
-              "Requirement failed: default sort order changed: expected id %s 
!= %s",
-              sortOrderId, base.defaultSortOrderId());
-        }
-      }
-    }
-  }
 }

Reply via email to