Skip to content

Commit 816f4e2

Browse files
committed
Extension are now supported by all compatible objects
1 parent 9d39253 commit 816f4e2

15 files changed

+98
-24
lines changed

src/main/java/com/qdesrame/openapi/diff/compare/ApiResponseDiff.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public Optional<ChangedApiResponse> diff(ApiResponses left, ApiResponses right,
3535
.ifPresent(changedResponse -> resps.put(responseCode, changedResponse));
3636
}
3737
changedApiResponse.setChangedResponses(resps);
38+
openApiDiff.getExtensionsDiff().diff(left.getExtensions(), right.getExtensions(), context)
39+
.ifPresent(changedApiResponse::setChangedExtensions);
3840
return isChanged(changedApiResponse);
3941
}
4042
}

src/main/java/com/qdesrame/openapi/diff/compare/ExtensionsDiff.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public <T> Optional<T> executeExtension(String name, Function<ExtensionDiff, T>
4646
.map(predicate);
4747
}
4848

49+
public Optional<ChangedExtensions> diff(Map<String, Object> left, Map<String, Object> right) {
50+
return this.diff(left, right, null);
51+
}
52+
4953
public Optional<ChangedExtensions> diff(Map<String, Object> left, Map<String, Object> right, DiffContext context) {
5054
if (null == left) left = new LinkedHashMap<>();
5155
if (null == right) right = new LinkedHashMap<>();

src/main/java/com/qdesrame/openapi/diff/compare/HeaderDiff.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ protected Optional<ChangedHeader> computeDiff(HashSet<String> refSet, Header lef
4646
changedHeader.setChangeExplode(getBooleanDiff(left.getExplode(), right.getExplode()));
4747
openApiDiff.getSchemaDiff().diff(new HashSet<>(), left.getSchema(), right.getSchema(), context.copyWithRequired(true)).ifPresent(changedHeader::setChangedSchema);
4848
openApiDiff.getContentDiff().diff(left.getContent(), right.getContent(), context).ifPresent(changedHeader::setChangedContent);
49-
49+
openApiDiff.getExtensionsDiff().diff(left.getExtensions(), right.getExtensions(), context)
50+
.ifPresent(changedHeader::setChangedExtensions);
5051
return isChanged(changedHeader);
5152
}
5253

src/main/java/com/qdesrame/openapi/diff/compare/OAuthFlowDiff.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import com.qdesrame.openapi.diff.model.ChangedOAuthFlow;
44
import io.swagger.v3.oas.models.security.OAuthFlow;
55

6+
import java.util.Map;
67
import java.util.Objects;
78
import java.util.Optional;
89

910
import static com.qdesrame.openapi.diff.utils.ChangedUtils.isChanged;
11+
import static java.util.Optional.ofNullable;
1012

1113
/**
1214
* Created by adarsh.sharma on 12/01/18.
@@ -18,14 +20,20 @@ public OAuthFlowDiff(OpenApiDiff openApiDiff) {
1820
this.openApiDiff = openApiDiff;
1921
}
2022

23+
private static Map<String, Object> getExtensions(OAuthFlow oAuthFlow) {
24+
return ofNullable(oAuthFlow).map(OAuthFlow::getExtensions).orElse(null);
25+
}
26+
2127
public Optional<ChangedOAuthFlow> diff(OAuthFlow left, OAuthFlow right) {
2228
ChangedOAuthFlow changedOAuthFlow = new ChangedOAuthFlow(left, right);
2329
if (left != null && right != null) {
2430
changedOAuthFlow.setChangedAuthorizationUrl(!Objects.equals(left.getAuthorizationUrl(), right.getAuthorizationUrl()));
2531
changedOAuthFlow.setChangedTokenUrl(!Objects.equals(left.getTokenUrl(), right.getTokenUrl()));
2632
changedOAuthFlow.setChangedRefreshUrl(!Objects.equals(left.getRefreshUrl(), right.getRefreshUrl()));
2733
}
28-
34+
openApiDiff.getExtensionsDiff().diff(getExtensions(left), getExtensions(right))
35+
.ifPresent(changedOAuthFlow::setChangedExtensions);
2936
return isChanged(changedOAuthFlow);
3037
}
38+
3139
}

src/main/java/com/qdesrame/openapi/diff/compare/OAuthFlowsDiff.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import com.qdesrame.openapi.diff.model.ChangedOAuthFlows;
44
import io.swagger.v3.oas.models.security.OAuthFlows;
55

6+
import java.util.Map;
67
import java.util.Optional;
78

89
import static com.qdesrame.openapi.diff.utils.ChangedUtils.isChanged;
10+
import static java.util.Optional.ofNullable;
911

1012
/**
1113
* Created by adarsh.sharma on 12/01/18.
@@ -17,6 +19,10 @@ public OAuthFlowsDiff(OpenApiDiff openApiDiff) {
1719
this.openApiDiff = openApiDiff;
1820
}
1921

22+
private static Map<String, Object> getExtensions(OAuthFlows oAuthFlow) {
23+
return ofNullable(oAuthFlow).map(OAuthFlows::getExtensions).orElse(null);
24+
}
25+
2026
public Optional<ChangedOAuthFlows> diff(OAuthFlows left, OAuthFlows right) {
2127
ChangedOAuthFlows changedOAuthFlows = new ChangedOAuthFlows(left, right);
2228
if (left != null && right != null) {
@@ -25,6 +31,9 @@ public Optional<ChangedOAuthFlows> diff(OAuthFlows left, OAuthFlows right) {
2531
openApiDiff.getoAuthFlowDiff().diff(left.getClientCredentials(), right.getClientCredentials()).ifPresent(changedOAuthFlows::setChangedClientCredentialOAuthFlow);
2632
openApiDiff.getoAuthFlowDiff().diff(left.getAuthorizationCode(), right.getAuthorizationCode()).ifPresent(changedOAuthFlows::setChangedAuthorizationCodeOAuthFlow);
2733
}
34+
openApiDiff.getExtensionsDiff().diff(getExtensions(left), getExtensions(right))
35+
.ifPresent(changedOAuthFlows::setChangedExtensions);
2836
return isChanged(changedOAuthFlows);
2937
}
38+
3039
}

src/main/java/com/qdesrame/openapi/diff/compare/OpenApiDiff.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.qdesrame.openapi.diff.compare;
22

33
import com.qdesrame.openapi.diff.model.*;
4+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
45
import com.qdesrame.openapi.diff.utils.EndpointUtils;
56
import io.swagger.v3.oas.models.OpenAPI;
67
import io.swagger.v3.oas.models.PathItem;
@@ -47,6 +48,8 @@ public class OpenApiDiff {
4748
private List<Endpoint> newEndpoints;
4849
private List<Endpoint> missingEndpoints;
4950
private List<ChangedOperation> changedOperations;
51+
private ChangedExtensions changedExtensions;
52+
5053

5154
/*
5255
* @param oldSpecOpenApi
@@ -105,9 +108,15 @@ private ChangedOpenApi compare() {
105108
changedOperations.addAll(changedPath.getChanged());
106109
});
107110
});
111+
getExtensionsDiff().diff(oldSpecOpenApi.getExtensions(), newSpecOpenApi.getExtensions())
112+
.ifPresent(this::setChangedExtension);
108113
return getChangedOpenApi();
109114
}
110115

116+
private void setChangedExtension(ChangedExtensions changedExtension) {
117+
this.changedExtensions = changedExtension;
118+
}
119+
111120
private void preProcess(OpenAPI openApi) {
112121
List<SecurityRequirement> securityRequirements = openApi.getSecurity();
113122

@@ -132,6 +141,7 @@ private ChangedOpenApi getChangedOpenApi() {
132141
changedOpenApi.setNewSpecOpenApi(newSpecOpenApi);
133142
changedOpenApi.setOldSpecOpenApi(oldSpecOpenApi);
134143
changedOpenApi.setChangedOperations(changedOperations);
144+
changedOpenApi.setChangedExtensions(changedExtensions);
135145
return changedOpenApi;
136146
}
137147

src/main/java/com/qdesrame/openapi/diff/compare/ResponseDiff.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ protected Optional<ChangedResponse> computeDiff(HashSet<String> refSet, ApiRespo
4242
openApiDiff.getContentDiff().diff(left.getContent(), right.getContent(), context).ifPresent(changedResponse::setChangedContent);
4343
openApiDiff.getHeadersDiff().diff(left.getHeaders(), right.getHeaders(), context).ifPresent(changedResponse::setChangedHeaders);
4444
changedResponse.setChangeDescription(!Objects.equals(left.getDescription(), right.getDescription()));
45-
45+
openApiDiff.getExtensionsDiff().diff(left.getExtensions(), right.getExtensions(), context)
46+
.ifPresent(changedResponse::setChangedExtensions);
4647
return isChanged(changedResponse);
4748
}
4849
}

src/main/java/com/qdesrame/openapi/diff/compare/SecuritySchemeDiff.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ protected Optional<ChangedSecurityScheme> computeDiff(HashSet<String> refSet, Se
7070
.getOpenIdConnectUrl()));
7171
break;
7272
}
73+
openApiDiff.getExtensionsDiff().diff(leftSecurityScheme.getExtensions(), rightSecurityScheme.getExtensions(), context)
74+
.ifPresent(changedSecurityScheme::setChangedExtensions);
7375

7476
return Optional.of(changedSecurityScheme);
7577
}

src/main/java/com/qdesrame/openapi/diff/model/ChangedApiResponse.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
4+
import com.qdesrame.openapi.diff.utils.ChangedUtils;
35
import io.swagger.v3.oas.models.responses.ApiResponse;
46
import io.swagger.v3.oas.models.responses.ApiResponses;
57
import lombok.Getter;
@@ -20,6 +22,7 @@ public class ChangedApiResponse implements Changed {
2022
private Map<String, ApiResponse> missingResponses;
2123
private Map<String, ApiResponse> addResponses;
2224
private Map<String, ChangedResponse> changedResponses;
25+
private ChangedExtensions changedExtensions;
2326

2427
public ChangedApiResponse(ApiResponses oldApiResponses, ApiResponses newApiResponses, DiffContext context) {
2528
this.oldApiResponses = oldApiResponses;
@@ -32,10 +35,12 @@ public ChangedApiResponse(ApiResponses oldApiResponses, ApiResponses newApiRespo
3235

3336
@Override
3437
public DiffResult isChanged() {
35-
if (addResponses.size() == 0 && missingResponses.size() == 0 && changedResponses.size() == 0) {
38+
if (addResponses.size() == 0 && missingResponses.size() == 0 && changedResponses.size() == 0
39+
&& ChangedUtils.isUnchanged(changedExtensions)) {
3640
return DiffResult.NO_CHANGES;
3741
}
38-
if (missingResponses.size() == 0 && changedResponses.values().stream().allMatch(Changed::isCompatible)) {
42+
if (missingResponses.size() == 0 && changedResponses.values().stream().allMatch(Changed::isCompatible)
43+
&& ChangedUtils.isCompatible(changedExtensions)) {
3944
return DiffResult.COMPATIBLE;
4045
}
4146
return DiffResult.INCOMPATIBLE;

src/main/java/com/qdesrame/openapi/diff/model/ChangedHeader.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
4+
import com.qdesrame.openapi.diff.utils.ChangedUtils;
35
import io.swagger.v3.oas.models.headers.Header;
46
import lombok.Getter;
57
import lombok.Setter;
@@ -21,6 +23,7 @@ public class ChangedHeader implements Changed {
2123
private boolean changeExplode;
2224
private ChangedSchema changedSchema;
2325
private ChangedContent changedContent;
26+
private ChangedExtensions changedExtensions;
2427

2528
public ChangedHeader(Header oldHeader, Header newHeader, DiffContext context) {
2629
this.oldHeader = oldHeader;
@@ -31,13 +34,15 @@ public ChangedHeader(Header oldHeader, Header newHeader, DiffContext context) {
3134
@Override
3235
public DiffResult isChanged() {
3336
if (!changeDescription && !changeRequired && !changeDeprecated && !changeStyle && !changeExplode
34-
&& (changedSchema == null || changedSchema.isUnchanged())
35-
&& (changedContent == null || changedContent.isUnchanged())) {
37+
&& ChangedUtils.isUnchanged(changedSchema)
38+
&& ChangedUtils.isUnchanged(changedContent)
39+
&& ChangedUtils.isUnchanged(changedExtensions)) {
3640
return DiffResult.NO_CHANGES;
3741
}
3842
if (!changeRequired && !changeStyle && !changeExplode
39-
&& (changedSchema == null || changedSchema.isCompatible())
40-
&& (changedContent == null || changedContent.isCompatible())) {
43+
&& ChangedUtils.isCompatible(changedSchema)
44+
&& ChangedUtils.isCompatible(changedContent)
45+
&& ChangedUtils.isCompatible(changedExtensions)) {
4146
return DiffResult.COMPATIBLE;
4247
}
4348
return DiffResult.INCOMPATIBLE;

src/main/java/com/qdesrame/openapi/diff/model/ChangedOAuthFlow.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
4+
import com.qdesrame.openapi.diff.utils.ChangedUtils;
35
import io.swagger.v3.oas.models.security.OAuthFlow;
46
import lombok.Getter;
57
import lombok.Setter;
@@ -16,6 +18,7 @@ public class ChangedOAuthFlow implements Changed {
1618
private boolean changedAuthorizationUrl;
1719
private boolean changedTokenUrl;
1820
private boolean changedRefreshUrl;
21+
private ChangedExtensions changedExtensions;
1922

2023
public ChangedOAuthFlow(OAuthFlow oldOAuthFlow, OAuthFlow newOAuthFlow) {
2124
this.oldOAuthFlow = oldOAuthFlow;
@@ -25,9 +28,12 @@ public ChangedOAuthFlow(OAuthFlow oldOAuthFlow, OAuthFlow newOAuthFlow) {
2528
@Override
2629
public DiffResult isChanged() {
2730
if (!changedAuthorizationUrl && !changedTokenUrl && !changedRefreshUrl) {
28-
return DiffResult.NO_CHANGES;
29-
} else {
30-
return DiffResult.INCOMPATIBLE;
31+
if (ChangedUtils.isUnchanged(changedExtensions)) {
32+
return DiffResult.NO_CHANGES;
33+
} else if (ChangedUtils.isCompatible(changedExtensions)) {
34+
return DiffResult.COMPATIBLE;
35+
}
3136
}
37+
return DiffResult.INCOMPATIBLE;
3238
}
3339
}

src/main/java/com/qdesrame/openapi/diff/model/ChangedOAuthFlows.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
4+
import com.qdesrame.openapi.diff.utils.ChangedUtils;
35
import io.swagger.v3.oas.models.security.OAuthFlows;
46
import lombok.Getter;
57
import lombok.Setter;
@@ -17,6 +19,7 @@ public class ChangedOAuthFlows implements Changed {
1719
private ChangedOAuthFlow changedPasswordOAuthFlow;
1820
private ChangedOAuthFlow changedClientCredentialOAuthFlow;
1921
private ChangedOAuthFlow changedAuthorizationCodeOAuthFlow;
22+
private ChangedExtensions changedExtensions;
2023

2124
public ChangedOAuthFlows(OAuthFlows oldOAuthFlows, OAuthFlows newOAuthFlows) {
2225
this.oldOAuthFlows = oldOAuthFlows;
@@ -26,15 +29,17 @@ public ChangedOAuthFlows(OAuthFlows oldOAuthFlows, OAuthFlows newOAuthFlows) {
2629
@Override
2730
public DiffResult isChanged() {
2831
if ((changedImplicitOAuthFlow == null || changedImplicitOAuthFlow.isUnchanged())
29-
&& (changedPasswordOAuthFlow == null || changedPasswordOAuthFlow.isUnchanged())
30-
&& (changedClientCredentialOAuthFlow == null || changedClientCredentialOAuthFlow.isUnchanged())
31-
&& (changedAuthorizationCodeOAuthFlow == null || changedAuthorizationCodeOAuthFlow.isUnchanged())) {
32+
&& ChangedUtils.isUnchanged(changedPasswordOAuthFlow)
33+
&& ChangedUtils.isUnchanged(changedClientCredentialOAuthFlow)
34+
&& ChangedUtils.isUnchanged(changedAuthorizationCodeOAuthFlow)
35+
&& ChangedUtils.isUnchanged(changedExtensions)) {
3236
return DiffResult.NO_CHANGES;
3337
}
3438
if ((changedImplicitOAuthFlow == null || changedImplicitOAuthFlow.isCompatible())
35-
&& (changedPasswordOAuthFlow == null || changedPasswordOAuthFlow.isCompatible())
36-
&& (changedClientCredentialOAuthFlow == null || changedClientCredentialOAuthFlow.isCompatible())
37-
&& (changedAuthorizationCodeOAuthFlow == null || changedAuthorizationCodeOAuthFlow.isCompatible())) {
39+
&& ChangedUtils.isCompatible(changedPasswordOAuthFlow)
40+
&& ChangedUtils.isCompatible(changedClientCredentialOAuthFlow)
41+
&& ChangedUtils.isCompatible(changedAuthorizationCodeOAuthFlow)
42+
&& ChangedUtils.isCompatible(changedExtensions)) {
3843
return DiffResult.COMPATIBLE;
3944
}
4045
return DiffResult.INCOMPATIBLE;

src/main/java/com/qdesrame/openapi/diff/model/ChangedOpenApi.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
4+
import com.qdesrame.openapi.diff.utils.ChangedUtils;
35
import com.qdesrame.openapi.diff.utils.EndpointUtils;
46
import io.swagger.v3.oas.models.OpenAPI;
57
import lombok.Getter;
@@ -20,6 +22,7 @@ public class ChangedOpenApi implements Changed {
2022
private List<Endpoint> newEndpoints;
2123
private List<Endpoint> missingEndpoints;
2224
private List<ChangedOperation> changedOperations;
25+
private ChangedExtensions changedExtensions;
2326

2427
public List<Endpoint> getDeprecatedEndpoints() {
2528
return changedOperations.stream()
@@ -30,10 +33,12 @@ public List<Endpoint> getDeprecatedEndpoints() {
3033

3134
@Override
3235
public DiffResult isChanged() {
33-
if (newEndpoints.size() == 0 && missingEndpoints.size() == 0 && changedOperations.size() == 0) {
36+
if (newEndpoints.size() == 0 && missingEndpoints.size() == 0 && changedOperations.size() == 0
37+
&& ChangedUtils.isUnchanged(changedExtensions)) {
3438
return DiffResult.NO_CHANGES;
3539
}
36-
if (missingEndpoints.size() == 0 && changedOperations.stream().allMatch(Changed::isCompatible)) {
40+
if (missingEndpoints.size() == 0 && changedOperations.stream().allMatch(Changed::isCompatible)
41+
&& ChangedUtils.isCompatible(changedExtensions)) {
3742
return DiffResult.COMPATIBLE;
3843
}
3944
return DiffResult.INCOMPATIBLE;

src/main/java/com/qdesrame/openapi/diff/model/ChangedResponse.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
34
import com.qdesrame.openapi.diff.utils.ChangedUtils;
45
import io.swagger.v3.oas.models.responses.ApiResponse;
56
import lombok.Getter;
@@ -15,6 +16,7 @@ public class ChangedResponse implements Changed {
1516
private boolean changeDescription;
1617
private ChangedHeaders changedHeaders;
1718
private ChangedContent changedContent;
19+
private ChangedExtensions changedExtensions;
1820

1921
public ChangedResponse(ApiResponse oldApiResponse, ApiResponse newApiResponse, DiffContext context) {
2022
this.oldApiResponse = oldApiResponse;
@@ -24,10 +26,15 @@ public ChangedResponse(ApiResponse oldApiResponse, ApiResponse newApiResponse, D
2426

2527
@Override
2628
public DiffResult isChanged() {
27-
if (!changeDescription && ChangedUtils.isUnchanged(changedContent) && ChangedUtils.isUnchanged(changedHeaders)) {
29+
if (!changeDescription
30+
&& ChangedUtils.isUnchanged(changedContent)
31+
&& ChangedUtils.isUnchanged(changedHeaders)
32+
&& ChangedUtils.isUnchanged(changedExtensions)) {
2833
return DiffResult.NO_CHANGES;
2934
}
30-
if (ChangedUtils.isCompatible(changedContent) && ChangedUtils.isCompatible(changedHeaders)) {
35+
if (ChangedUtils.isCompatible(changedContent)
36+
&& ChangedUtils.isCompatible(changedHeaders)
37+
&& ChangedUtils.isCompatible(changedExtensions)) {
3138
return DiffResult.COMPATIBLE;
3239
}
3340
return DiffResult.INCOMPATIBLE;

src/main/java/com/qdesrame/openapi/diff/model/ChangedSecurityScheme.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.qdesrame.openapi.diff.model;
22

3+
import com.qdesrame.openapi.diff.model.schema.ChangedExtensions;
34
import com.qdesrame.openapi.diff.utils.ChangedUtils;
45
import io.swagger.v3.oas.models.security.SecurityScheme;
56
import lombok.Getter;
@@ -21,6 +22,7 @@ public class ChangedSecurityScheme implements Changed {
2122
private ChangedOAuthFlows changedOAuthFlows;
2223
private boolean changedOpenIdConnectUrl;
2324
private ListDiff<String> changedScopes;
25+
private ChangedExtensions changedExtensions;
2426

2527
public ChangedSecurityScheme(SecurityScheme oldSecurityScheme, SecurityScheme newSecurityScheme) {
2628
this.oldSecurityScheme = oldSecurityScheme;
@@ -31,12 +33,14 @@ public ChangedSecurityScheme(SecurityScheme oldSecurityScheme, SecurityScheme ne
3133
public DiffResult isChanged() {
3234
if (!changedType && !changedDescription && !changedIn && !changedScheme && !changedBearerFormat
3335
&& ChangedUtils.isUnchanged(changedOAuthFlows) && !changedOpenIdConnectUrl
34-
&& (changedScopes == null || changedScopes.isUnchanged())) {
36+
&& (changedScopes == null || changedScopes.isUnchanged())
37+
&& ChangedUtils.isUnchanged(changedExtensions)) {
3538
return DiffResult.NO_CHANGES;
3639
}
3740
if (!changedType && !changedIn && !changedScheme && !changedBearerFormat
3841
&& ChangedUtils.isCompatible(changedOAuthFlows) && !changedOpenIdConnectUrl
39-
&& (changedScopes == null || changedScopes.getIncreased().isEmpty())) {
42+
&& (changedScopes == null || changedScopes.getIncreased().isEmpty())
43+
&& ChangedUtils.isCompatible(changedExtensions)) {
4044
return DiffResult.COMPATIBLE;
4145
}
4246
return DiffResult.INCOMPATIBLE;

0 commit comments

Comments
 (0)