Skip to content

Commit 25d5a40

Browse files
authored
Update architecture-tests (#5774)
1 parent e1b926e commit 25d5a40

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

core/json-utils/src/main/java/software/amazon/awssdk/protocols/jsoncore/internal/NullJsonNode.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,18 @@
1717

1818
import java.util.List;
1919
import java.util.Map;
20-
import software.amazon.awssdk.annotations.SdkInternalApi;
20+
import software.amazon.awssdk.annotations.SdkProtectedApi;
2121
import software.amazon.awssdk.protocols.jsoncore.JsonNode;
2222
import software.amazon.awssdk.protocols.jsoncore.JsonNodeVisitor;
2323

2424
/**
2525
* A null {@link JsonNode}.
26+
*
27+
* <p>
28+
* Implementation notes: this class should've been outside internal package,
29+
* but we can't fix it due to backwards compatibility reasons.
2630
*/
27-
@SdkInternalApi
31+
@SdkProtectedApi
2832
public final class NullJsonNode implements JsonNode {
2933
private static final NullJsonNode INSTANCE = new NullJsonNode();
3034

test/architecture-tests/archunit_store/c898eee1-aeb5-4355-bb3b-ea56bf58cacb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Class <software.amazon.awssdk.core.internal.util.MetricUtils> does not reside ou
1414
Class <software.amazon.awssdk.core.internal.waiters.ResponseOrException> does not reside outside of package '..internal..' in (ResponseOrException.java:0)
1515
Class <software.amazon.awssdk.core.internal.waiters.WaiterAttribute> does not reside outside of package '..internal..' in (WaiterAttribute.java:0)
1616
Class <software.amazon.awssdk.http.nio.netty.internal.DnsResolverLoader> does not reside outside of package '..internal..' in (DnsResolverLoader.java:0)
17+
Class <software.amazon.awssdk.protocols.jsoncore.internal.NullJsonNode> does not reside outside of package '..internal..' in (NullJsonNode.java:0)
1718
Class <software.amazon.awssdk.retries.api.internal.backoff.ExponentialDelayWithHalfJitter> does not reside outside of package '..internal..' in (ExponentialDelayWithHalfJitter.java:0)
1819
Class <software.amazon.awssdk.retries.internal.DefaultAwareRetryStrategy> does not reside outside of package '..internal..' in (DefaultAwareRetryStrategy.java:0)
1920
Class <software.amazon.awssdk.retries.internal.RetryStrategyDefaults> does not reside outside of package '..internal..' in (RetryStrategyDefaults.java:0)

test/architecture-tests/src/test/java/software/amazon/awssdk/archtests/InternalApiBoundaryTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import java.util.Set;
3232
import java.util.stream.Collectors;
3333
import org.junit.jupiter.api.Test;
34+
import software.amazon.awssdk.annotations.SdkInternalApi;
35+
import software.amazon.awssdk.annotations.SdkProtectedApi;
3436
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
3537
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
3638
import software.amazon.awssdk.core.internal.interceptor.trait.RequestCompression;
@@ -92,7 +94,9 @@ public void check(JavaClass item, ConditionEvents events) {
9294
}
9395

9496
if (JavaClass.Predicates.resideInAPackage("software.amazon.awssdk..internal..").test(dependencyTargetClass)) {
95-
if (!ArchUtils.resideInSameRootPackage(packageName, dependencyPackageName)) {
97+
if (!ArchUtils.resideInSameRootPackage(packageName, dependencyPackageName) &&
98+
// Ignore if the dependency class is not annotated with SdkInternalApi since it's an exception case
99+
dependencyTargetClass.isAnnotatedWith(SdkInternalApi.class)) {
96100
String errorMessage = String.format("%s depends on an internal API from a different module (%s)",
97101
item.getDescription(),
98102
dependencyTargetClass.getDescription());

0 commit comments

Comments
 (0)