Skip to content

Commit 5078dc9

Browse files
committed
Extracted out Beta API skipping to a separate component
1 parent f53c1af commit 5078dc9

16 files changed

+98
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.redskap.swagger.brake.core.rule;
2+
3+
import io.redskap.swagger.brake.core.model.Path;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
public class PathSkipper {
8+
public boolean shouldSkip(Path path) {
9+
return path.isBetaApi();
10+
}
11+
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/path/PathDeletedRule.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.redskap.swagger.brake.core.model.Path;
99
import io.redskap.swagger.brake.core.model.Specification;
1010
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
11+
import io.redskap.swagger.brake.core.rule.PathSkipper;
1112
import lombok.RequiredArgsConstructor;
1213
import lombok.extern.slf4j.Slf4j;
1314
import org.springframework.stereotype.Component;
@@ -16,6 +17,7 @@
1617
@Slf4j
1718
@RequiredArgsConstructor
1819
public class PathDeletedRule implements BreakingChangeRule<PathDeletedBreakingChange> {
20+
private final PathSkipper pathSkipper;
1921
private final CheckerOptionsProvider checkerOptionsProvider;
2022

2123
@Override
@@ -24,7 +26,7 @@ public Collection<PathDeletedBreakingChange> checkRule(Specification oldApi, Spe
2426
CheckerOptions checkerOptions = checkerOptionsProvider.get();
2527
Collection<PathDeletedBreakingChange> breakingChanges = new ArrayList<>();
2628
for (Path p : oldApi.getPaths()) {
27-
if (p.isBetaApi()) {
29+
if (pathSkipper.shouldSkip(p)) {
2830
log.debug("Skipping {} as it's marked as a beta API", p);
2931
continue;
3032
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestMediaTypeDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class RequestMediaTypeDeletedRule implements BreakingChangeRule<RequestMediaTypeDeletedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<RequestMediaTypeDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<RequestMediaTypeDeletedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestParameterDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,21 @@
99
import io.redskap.swagger.brake.core.model.RequestParameter;
1010
import io.redskap.swagger.brake.core.model.Specification;
1111
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
12+
import io.redskap.swagger.brake.core.rule.PathSkipper;
13+
import lombok.RequiredArgsConstructor;
1214
import org.apache.commons.collections4.CollectionUtils;
1315
import org.springframework.stereotype.Component;
1416

1517
@Component
18+
@RequiredArgsConstructor
1619
public class RequestParameterDeletedRule implements BreakingChangeRule<RequestParameterDeletedBreakingChange> {
20+
private final PathSkipper pathSkipper;
21+
1722
@Override
1823
public Collection<RequestParameterDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1924
Set<RequestParameterDeletedBreakingChange> breakingChanges = new HashSet<>();
2025
for (Path path : oldApi.getPaths()) {
21-
if (path.isBetaApi()) {
26+
if (pathSkipper.shouldSkip(path)) {
2227
continue;
2328
}
2429
Optional<Path> newApiPath = newApi.getPath(path);

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestParameterEnumValueDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,23 @@
1010
import io.redskap.swagger.brake.core.model.Schema;
1111
import io.redskap.swagger.brake.core.model.Specification;
1212
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
13+
import io.redskap.swagger.brake.core.rule.PathSkipper;
14+
import lombok.RequiredArgsConstructor;
1315
import lombok.extern.slf4j.Slf4j;
1416
import org.apache.commons.collections4.CollectionUtils;
1517
import org.springframework.stereotype.Component;
1618

1719
@Component
1820
@Slf4j
21+
@RequiredArgsConstructor
1922
public class RequestParameterEnumValueDeletedRule implements BreakingChangeRule<RequestParameterEnumValueDeletedBreakingChange> {
23+
private final PathSkipper pathSkipper;
24+
2025
@Override
2126
public Collection<RequestParameterEnumValueDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
2227
Set<RequestParameterEnumValueDeletedBreakingChange> breakingChanges = new HashSet<>();
2328
for (Path path : oldApi.getPaths()) {
24-
if (path.isBetaApi()) {
29+
if (pathSkipper.shouldSkip(path)) {
2530
log.debug("Skipping {} as it's marked as a beta API", path);
2631
continue;
2732
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestParameterInTypeChangedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,23 @@
99
import io.redskap.swagger.brake.core.model.RequestParameter;
1010
import io.redskap.swagger.brake.core.model.Specification;
1111
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
12+
import io.redskap.swagger.brake.core.rule.PathSkipper;
13+
import lombok.RequiredArgsConstructor;
1214
import lombok.extern.slf4j.Slf4j;
1315
import org.apache.commons.collections4.CollectionUtils;
1416
import org.springframework.stereotype.Component;
1517

1618
@Component
1719
@Slf4j
20+
@RequiredArgsConstructor
1821
public class RequestParameterInTypeChangedRule implements BreakingChangeRule<RequestParameterInTypeChangedBreakingChange> {
22+
private final PathSkipper pathSkipper;
23+
1924
@Override
2025
public Collection<RequestParameterInTypeChangedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
2126
Set<RequestParameterInTypeChangedBreakingChange> breakingChanges = new HashSet<>();
2227
for (Path path : oldApi.getPaths()) {
23-
if (path.isBetaApi()) {
28+
if (pathSkipper.shouldSkip(path)) {
2429
log.debug("Skipping {} as it's marked as a beta API", path);
2530
continue;
2631
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestParameterRequiredRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,23 @@
99
import io.redskap.swagger.brake.core.model.RequestParameter;
1010
import io.redskap.swagger.brake.core.model.Specification;
1111
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
12+
import io.redskap.swagger.brake.core.rule.PathSkipper;
13+
import lombok.RequiredArgsConstructor;
1214
import lombok.extern.slf4j.Slf4j;
1315
import org.apache.commons.collections4.CollectionUtils;
1416
import org.springframework.stereotype.Component;
1517

1618
@Component
1719
@Slf4j
20+
@RequiredArgsConstructor
1821
public class RequestParameterRequiredRule implements BreakingChangeRule<RequestParameterRequiredBreakingChange> {
22+
private final PathSkipper pathSkipper;
23+
1924
@Override
2025
public Collection<RequestParameterRequiredBreakingChange> checkRule(Specification oldApi, Specification newApi) {
2126
Set<RequestParameterRequiredBreakingChange> breakingChanges = new HashSet<>();
2227
for (Path path : oldApi.getPaths()) {
23-
if (path.isBetaApi()) {
28+
if (pathSkipper.shouldSkip(path)) {
2429
log.debug("Skipping {} as it's marked as a beta API", path);
2530
continue;
2631
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestParameterTypeChangedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77
import io.redskap.swagger.brake.core.model.Schema;
88
import io.redskap.swagger.brake.core.model.Specification;
99
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
10+
import io.redskap.swagger.brake.core.rule.PathSkipper;
11+
import lombok.RequiredArgsConstructor;
1012
import lombok.extern.slf4j.Slf4j;
1113
import org.apache.commons.collections4.CollectionUtils;
1214
import org.springframework.stereotype.Component;
1315

1416
@Component
1517
@Slf4j
18+
@RequiredArgsConstructor
1619
public class RequestParameterTypeChangedRule implements BreakingChangeRule<RequestParameterTypeChangedBreakingChange> {
20+
private final PathSkipper pathSkipper;
21+
1722
@Override
1823
public Collection<RequestParameterTypeChangedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1924
Set<RequestParameterTypeChangedBreakingChange> breakingChanges = new HashSet<>();
2025
for (Path path : oldApi.getPaths()) {
21-
if (path.isBetaApi()) {
26+
if (pathSkipper.shouldSkip(path)) {
2227
log.debug("Skipping {} as it's marked as a beta API", path);
2328
continue;
2429
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestTypeAttributeRemovedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class RequestTypeAttributeRemovedRule implements BreakingChangeRule<RequestTypeAttributeRemovedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<RequestTypeAttributeRemovedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<RequestTypeAttributeRemovedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestTypeChangedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77

88
import io.redskap.swagger.brake.core.model.*;
99
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
10+
import io.redskap.swagger.brake.core.rule.PathSkipper;
11+
import lombok.RequiredArgsConstructor;
1012
import lombok.extern.slf4j.Slf4j;
1113
import org.apache.commons.collections4.CollectionUtils;
1214
import org.springframework.stereotype.Component;
1315

1416
@Component
1517
@Slf4j
18+
@RequiredArgsConstructor
1619
public class RequestTypeChangedRule implements BreakingChangeRule<RequestTypeChangedBreakingChange> {
20+
private final PathSkipper pathSkipper;
21+
1722
@Override
1823
public Collection<RequestTypeChangedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1924
Set<RequestTypeChangedBreakingChange> breakingChanges = new HashSet<>();
2025
for (Path path : oldApi.getPaths()) {
21-
if (path.isBetaApi()) {
26+
if (pathSkipper.shouldSkip(path)) {
2227
log.debug("Skipping {} as it's marked as a beta API", path);
2328
continue;
2429
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/request/RequestTypeEnumValueDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class RequestTypeEnumValueDeletedRule implements BreakingChangeRule<RequestTypeEnumValueDeletedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<RequestTypeEnumValueDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<RequestTypeEnumValueDeletedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/response/ResponseDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,22 @@
99
import io.redskap.swagger.brake.core.model.Response;
1010
import io.redskap.swagger.brake.core.model.Specification;
1111
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
12+
import io.redskap.swagger.brake.core.rule.PathSkipper;
13+
import lombok.RequiredArgsConstructor;
1214
import lombok.extern.slf4j.Slf4j;
1315
import org.springframework.stereotype.Component;
1416

1517
@Component
1618
@Slf4j
19+
@RequiredArgsConstructor
1720
public class ResponseDeletedRule implements BreakingChangeRule<ResponseDeletedBreakingChange> {
21+
private final PathSkipper pathSkipper;
22+
1823
@Override
1924
public Collection<ResponseDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
2025
Set<ResponseDeletedBreakingChange> breakingChanges = new HashSet<>();
2126
for (Path path : oldApi.getPaths()) {
22-
if (path.isBetaApi()) {
27+
if (pathSkipper.shouldSkip(path)) {
2328
log.debug("Skipping {} as it's marked as a beta API", path);
2429
continue;
2530
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/response/ResponseMediaTypeDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class ResponseMediaTypeDeletedRule implements BreakingChangeRule<ResponseMediaTypeDeletedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<ResponseMediaTypeDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<ResponseMediaTypeDeletedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/response/ResponseTypeAttributeRemovedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class ResponseTypeAttributeRemovedRule implements BreakingChangeRule<ResponseTypeAttributeRemovedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<ResponseTypeAttributeRemovedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<ResponseTypeAttributeRemovedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/response/ResponseTypeChangedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class ResponseTypeChangedRule implements BreakingChangeRule<ResponseTypeChangedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<ResponseTypeChangedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<ResponseTypeChangedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

swagger-brake/src/main/java/io/redskap/swagger/brake/core/rule/response/ResponseTypeEnumValueDeletedRule.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@
44

55
import io.redskap.swagger.brake.core.model.*;
66
import io.redskap.swagger.brake.core.rule.BreakingChangeRule;
7+
import io.redskap.swagger.brake.core.rule.PathSkipper;
8+
import lombok.RequiredArgsConstructor;
79
import lombok.extern.slf4j.Slf4j;
810
import org.springframework.stereotype.Component;
911

1012
@Component
1113
@Slf4j
14+
@RequiredArgsConstructor
1215
public class ResponseTypeEnumValueDeletedRule implements BreakingChangeRule<ResponseTypeEnumValueDeletedBreakingChange> {
16+
private final PathSkipper pathSkipper;
17+
1318
@Override
1419
public Collection<ResponseTypeEnumValueDeletedBreakingChange> checkRule(Specification oldApi, Specification newApi) {
1520
Set<ResponseTypeEnumValueDeletedBreakingChange> breakingChanges = new HashSet<>();
1621
for (Path path : oldApi.getPaths()) {
17-
if (path.isBetaApi()) {
22+
if (pathSkipper.shouldSkip(path)) {
1823
log.debug("Skipping {} as it's marked as a beta API", path);
1924
continue;
2025
}

0 commit comments

Comments
 (0)