Skip to content

Commit 95ebdd3

Browse files
authored
Remove commons-lang3 dependency (#2456)
outside of tests we can replace the functionality with jdk11 and guava. also stop using `org.assertj.core.util` as its a non-public api.
1 parent 00ca832 commit 95ebdd3

File tree

14 files changed

+24
-29
lines changed

14 files changed

+24
-29
lines changed

integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewAwsIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
*/
1919
package org.apache.polaris.service.it.test;
2020

21+
import com.google.common.base.Strings;
2122
import java.util.List;
2223
import java.util.Optional;
2324
import java.util.stream.Stream;
2425
import org.apache.polaris.core.admin.model.AwsStorageConfigInfo;
2526
import org.apache.polaris.core.admin.model.StorageConfigInfo;
26-
import org.assertj.core.util.Strings;
2727

2828
/** Runs PolarisRestCatalogViewIntegrationTest on AWS. */
2929
public class PolarisRestCatalogViewAwsIntegrationTest

integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewAzureIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
*/
1919
package org.apache.polaris.service.it.test;
2020

21+
import com.google.common.base.Strings;
2122
import java.util.List;
2223
import java.util.stream.Stream;
2324
import org.apache.polaris.core.admin.model.AzureStorageConfigInfo;
2425
import org.apache.polaris.core.admin.model.StorageConfigInfo;
25-
import org.assertj.core.util.Strings;
2626

2727
/** Runs PolarisRestCatalogViewIntegrationTest on Azure. */
2828
public class PolarisRestCatalogViewAzureIntegrationTest

integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewGcpIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
*/
1919
package org.apache.polaris.service.it.test;
2020

21+
import com.google.common.base.Strings;
2122
import java.util.List;
2223
import java.util.stream.Stream;
2324
import org.apache.polaris.core.admin.model.GcpStorageConfigInfo;
2425
import org.apache.polaris.core.admin.model.StorageConfigInfo;
25-
import org.assertj.core.util.Strings;
2626

2727
/** Runs PolarisRestCatalogViewIntegrationTest on GCP. */
2828
public class PolarisRestCatalogViewGcpIntegrationTest

polaris-core/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ dependencies {
4242
runtimeOnly("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
4343

4444
implementation(libs.caffeine)
45-
implementation(libs.commons.lang3)
4645
implementation(libs.commons.codec)
4746
implementation(libs.guava)
4847
implementation(libs.slf4j.api)

polaris-core/src/test/java/org/apache/polaris/service/storage/azure/AzureCredentialStorageIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.azure.storage.file.datalake.DataLakeFileSystemClientBuilder;
3333
import com.azure.storage.file.datalake.models.DataLakeStorageException;
3434
import com.azure.storage.file.datalake.models.PathItem;
35+
import com.google.common.base.Strings;
3536
import java.io.ByteArrayInputStream;
3637
import java.io.ByteArrayOutputStream;
3738
import java.lang.annotation.ElementType;
@@ -52,7 +53,6 @@
5253
import org.apache.polaris.core.storage.azure.AzureStorageConfigurationInfo;
5354
import org.assertj.core.api.Assertions;
5455
import org.assertj.core.api.Assumptions;
55-
import org.assertj.core.util.Strings;
5656
import org.junit.jupiter.api.Test;
5757
import org.junit.jupiter.api.extension.ExtensionContext;
5858
import org.junit.jupiter.params.ParameterizedTest;

runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisAdminService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static com.google.common.base.Preconditions.checkArgument;
2222
import static com.google.common.base.Preconditions.checkState;
2323

24+
import com.google.common.base.Strings;
2425
import jakarta.annotation.Nonnull;
2526
import jakarta.annotation.Nullable;
2627
import jakarta.validation.constraints.NotNull;
@@ -37,7 +38,6 @@
3738
import java.util.Set;
3839
import java.util.function.Function;
3940
import java.util.stream.Stream;
40-
import org.apache.commons.lang3.StringUtils;
4141
import org.apache.iceberg.catalog.Namespace;
4242
import org.apache.iceberg.catalog.TableIdentifier;
4343
import org.apache.iceberg.exceptions.AlreadyExistsException;
@@ -907,14 +907,14 @@ private void validateUpdateCatalogDiffOrThrow(
907907
// additionalProperties while neglecting to "echo" the default-base-location from the
908908
// fetched catalog, it's most user-friendly to treat a null or empty default-base-location
909909
// as meaning no intended change to the default-base-location.
910-
if (StringUtils.isNotEmpty(newDefaultBaseLocation)) {
911-
// New base location is already in the updated properties; we'll also potentially
912-
// plumb it into the logic for setting an updated StorageConfigurationInfo.
913-
defaultBaseLocation = newDefaultBaseLocation;
914-
} else {
910+
if (Strings.isNullOrEmpty(newDefaultBaseLocation)) {
915911
// No default-base-location present at all in the properties of the update request,
916912
// so we must restore it explicitly in the updateBuilder.
917913
updateBuilder.setDefaultBaseLocation(defaultBaseLocation);
914+
} else {
915+
// New base location is already in the updated properties; we'll also potentially
916+
// plumb it into the logic for setting an updated StorageConfigurationInfo.
917+
defaultBaseLocation = newDefaultBaseLocation;
918918
}
919919
}
920920
if (updateRequest.getStorageConfigInfo() != null) {

runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
*/
1919
package org.apache.polaris.service.auth;
2020

21+
import com.google.common.base.Throwables;
2122
import io.smallrye.common.annotation.Identifier;
2223
import jakarta.enterprise.context.RequestScoped;
2324
import jakarta.inject.Inject;
2425
import java.util.List;
2526
import java.util.Set;
2627
import java.util.function.Predicate;
2728
import java.util.stream.Collectors;
28-
import org.apache.commons.lang3.exception.ExceptionUtils;
2929
import org.apache.iceberg.exceptions.NotAuthorizedException;
3030
import org.apache.iceberg.exceptions.ServiceFailureException;
3131
import org.apache.polaris.core.PolarisCallContext;
@@ -61,7 +61,7 @@ public Set<String> getActiveRoles(PolarisPrincipal principal) {
6161
LOGGER.error(
6262
"Expected an PersistedPolarisPrincipal, but got {}: {}",
6363
principal.getClass().getName(),
64-
ExceptionUtils.getStackTrace(new ServiceFailureException("Invalid principal type")));
64+
Throwables.getStackTraceAsString(new ServiceFailureException("Invalid principal type")));
6565
throw new NotAuthorizedException("Unable to authenticate");
6666
}
6767
List<PrincipalRoleEntity> activeRoles =

runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultAuthenticator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
*/
1919
package org.apache.polaris.service.auth;
2020

21+
import com.google.common.base.Throwables;
2122
import io.smallrye.common.annotation.Identifier;
2223
import jakarta.enterprise.context.RequestScoped;
2324
import jakarta.inject.Inject;
2425
import java.util.HashSet;
2526
import java.util.Set;
26-
import org.apache.commons.lang3.exception.ExceptionUtils;
2727
import org.apache.iceberg.exceptions.NotAuthorizedException;
2828
import org.apache.iceberg.exceptions.ServiceFailureException;
2929
import org.apache.polaris.core.auth.PolarisPrincipal;
@@ -81,7 +81,7 @@ public PolarisPrincipal authenticate(PolarisCredential credentials) {
8181
LOGGER
8282
.atError()
8383
.addKeyValue("errMsg", e.getMessage())
84-
.addKeyValue("stackTrace", ExceptionUtils.getStackTrace(e))
84+
.addKeyValue("stackTrace", Throwables.getStackTraceAsString(e))
8585
.log("Unable to authenticate user with token");
8686
throw new ServiceFailureException("Unable to fetch principal entity");
8787
}

runtime/service/src/main/java/org/apache/polaris/service/auth/JWTBroker.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import java.util.Objects;
2929
import java.util.Optional;
3030
import java.util.UUID;
31-
import org.apache.commons.lang3.StringUtils;
3231
import org.apache.iceberg.exceptions.NotAuthorizedException;
3332
import org.apache.polaris.core.PolarisCallContext;
3433
import org.apache.polaris.core.entity.PolarisEntityType;
@@ -108,7 +107,7 @@ public TokenResponse generateFromToken(
108107
if (!TokenType.ACCESS_TOKEN.equals(subjectTokenType)) {
109108
return new TokenResponse(OAuthTokenErrorResponse.Error.invalid_request);
110109
}
111-
if (StringUtils.isBlank(subjectToken)) {
110+
if (subjectToken == null || subjectToken.isBlank()) {
112111
return new TokenResponse(OAuthTokenErrorResponse.Error.invalid_request);
113112
}
114113
DecodedToken decodedToken;
@@ -188,6 +187,6 @@ public boolean supportsRequestedTokenType(TokenType tokenType) {
188187
}
189188

190189
private String scopes(String scope) {
191-
return StringUtils.isNotBlank(scope) ? scope : DefaultAuthenticator.PRINCIPAL_ROLE_ALL;
190+
return scope == null || scope.isBlank() ? DefaultAuthenticator.PRINCIPAL_ROLE_ALL : scope;
192191
}
193192
}

runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.common.base.Joiner;
2525
import com.google.common.base.Objects;
2626
import com.google.common.base.Preconditions;
27+
import com.google.common.base.Throwables;
2728
import com.google.common.collect.ImmutableMap;
2829
import jakarta.annotation.Nonnull;
2930
import jakarta.annotation.Nullable;
@@ -47,7 +48,6 @@
4748
import java.util.function.Predicate;
4849
import java.util.stream.Collectors;
4950
import java.util.stream.Stream;
50-
import org.apache.commons.lang3.exception.ExceptionUtils;
5151
import org.apache.iceberg.BaseTable;
5252
import org.apache.iceberg.CatalogProperties;
5353
import org.apache.iceberg.CatalogUtil;
@@ -165,7 +165,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
165165
&& !(ex instanceof ForbiddenException)
166166
&& !(ex instanceof UnprocessableEntityException)
167167
&& (isStorageProviderRetryableException(ex)
168-
|| isStorageProviderRetryableException(ExceptionUtils.getRootCause(ex)));
168+
|| isStorageProviderRetryableException(Throwables.getRootCause(ex)));
169169
};
170170

171171
private final StorageCredentialCache storageCredentialCache;

0 commit comments

Comments
 (0)