Skip to content

Commit be57b0e

Browse files
committed
build: bump swagger to 2.2.42
1 parent 04c13ad commit be57b0e

File tree

7 files changed

+42
-76
lines changed

7 files changed

+42
-76
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jupiter = "6.0.2"
1414
mockito = "5.21.0"
1515
openapi-merger = "1.0.5"
1616
openapi-generator = "7.19.0"
17-
swagger = "2.2.26"
17+
swagger = "2.2.42"
1818
swagger-parser = "2.1.38"
1919

2020
[libraries]

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@
3737
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.mavenPom;
3838
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.mavenPublication;
3939
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.mavenPublishing;
40+
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.openApiMerger;
4041
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.printClasspath;
4142
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.repositories;
4243
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.rootBuildScript;
4344
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.signing;
44-
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.swagger;
45+
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.swaggerGenerator;
4546
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.tests;
4647
import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.waitForPublishedArtifacts;
4748

@@ -62,6 +63,13 @@ public void apply(Project target) {
6263
task.mustRunAfter(signTasks);
6364
});
6465

66+
of(
67+
rootBuildScript(),
68+
repositories(),
69+
swaggerGenerator(),
70+
openApiMerger()
71+
).forEach(c -> c.apply(target));
72+
6573
// configuration values are only guaranteed to be set after the project has been evaluated
6674
// https://docs.gradle.org/current/userguide/build_lifecycle.html
6775
target.afterEvaluate(project -> {
@@ -71,8 +79,6 @@ public void apply(Project target) {
7179

7280
// apply the conventions
7381
of(
74-
rootBuildScript(),
75-
repositories(),
7682
defaultDependencies(),
7783
checkstyle(),
7884
mavenPublishing(),
@@ -82,7 +88,6 @@ public void apply(Project target) {
8288
allDependencies(),
8389
tests(),
8490
jar(),
85-
swagger(),
8691
printClasspath(),
8792
waitForPublishedArtifacts()
8893
).forEach(c -> c.apply(project));

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/Conventions.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@ public static EdcConvention rootBuildScript() {
5959
return new RootBuildScriptConvention();
6060
}
6161

62-
public static EdcConvention swagger() {
63-
return new SwaggerConvention();
64-
}
65-
6662
public static EdcConvention swaggerGenerator() {
6763
return new SwaggerResolveConvention();
6864
}

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/OpenApiMergerConvention.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.function.Supplier;
2222

2323
import static org.eclipse.edc.plugins.edcbuild.conventions.ConventionFunctions.requireExtension;
24-
import static org.eclipse.edc.plugins.edcbuild.conventions.SwaggerConvention.defaultOutputDirectory;
24+
import static org.eclipse.edc.plugins.edcbuild.conventions.SwaggerResolveConvention.defaultOutputDirectory;
2525

2626
/**
2727
* Configures inputs and outputs for the OpenAPI merger plugin

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/SwaggerConvention.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/SwaggerResolveConvention.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,19 @@
1515
package org.eclipse.edc.plugins.edcbuild.conventions;
1616

1717
import io.swagger.v3.plugins.gradle.tasks.ResolveTask;
18-
import org.eclipse.edc.plugins.edcbuild.Versions;
1918
import org.eclipse.edc.plugins.edcbuild.extensions.BuildExtension;
2019
import org.eclipse.edc.plugins.edcbuild.tasks.PrintApiGroupTask;
2120
import org.gradle.api.Project;
21+
import org.gradle.api.file.FileCollection;
2222
import org.gradle.api.plugins.JavaPluginExtension;
23+
import org.jspecify.annotations.NonNull;
2324

2425
import java.nio.file.Path;
25-
import java.util.Map;
2626
import java.util.stream.Stream;
2727

28+
import static org.eclipse.edc.plugins.edcbuild.Versions.JAKARTA_WS_RS;
29+
import static org.eclipse.edc.plugins.edcbuild.Versions.SWAGGER;
2830
import static org.eclipse.edc.plugins.edcbuild.conventions.ConventionFunctions.requireExtension;
29-
import static org.eclipse.edc.plugins.edcbuild.conventions.SwaggerConvention.defaultOutputDirectory;
3031
import static org.gradle.api.plugins.JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME;
3132

3233
/**
@@ -37,46 +38,48 @@ class SwaggerResolveConvention implements EdcConvention {
3738
private static final String DEFAULT_API_GROUP = "";
3839
public static final String SWAGGER_GRADLE_PLUGIN = "io.swagger.core.v3.swagger-gradle-plugin";
3940

41+
public static Path defaultOutputDirectory(Project project) {
42+
return Path.of(project.getRootProject().getProjectDir().getAbsolutePath(), "resources/openapi/yaml");
43+
}
44+
4045
@Override
4146
public void apply(Project target) {
4247
target.getPluginManager().withPlugin(SWAGGER_GRADLE_PLUGIN, appliedPlugin -> {
4348

4449
target.getTasks().register("apiGroups", PrintApiGroupTask.class);
4550

4651
Stream.of(
47-
"io.swagger.core.v3:swagger-jaxrs2-jakarta:%s".formatted(Versions.SWAGGER),
48-
"jakarta.ws.rs:jakarta.ws.rs-api:%s".formatted(Versions.JAKARTA_WS_RS)
52+
"io.swagger.core.v3:swagger-jaxrs2-jakarta:%s".formatted(SWAGGER),
53+
"jakarta.ws.rs:jakarta.ws.rs-api:%s".formatted(JAKARTA_WS_RS)
4954
).forEach(dependency -> target.getDependencies().add(IMPLEMENTATION_CONFIGURATION_NAME, dependency));
5055

51-
var classpath = requireExtension(target, JavaPluginExtension.class)
52-
.getSourceSets().getAt("main").getRuntimeClasspath();
5356
var swaggerExt = requireExtension(target, BuildExtension.class).getSwagger();
5457

5558
var resourcePkgs = swaggerExt.getResourcePackages(); // already provides the default
5659

57-
target.getTasks().withType(ResolveTask.class, task -> {
60+
target.getTasks().withType(ResolveTask.class).configureEach(task -> {
5861
var outputFileName = swaggerExt.getOutputFilename().getOrElse(target.getName());
5962
var fallbackOutputDir = defaultOutputDirectory(target);
6063
var apiGroup = swaggerExt.getApiGroup().getOrElse(DEFAULT_API_GROUP);
6164

6265
var outputDir = Path.of(swaggerExt.getOutputDirectory().getOrElse(fallbackOutputDir.toFile()).toURI())
6366
.resolve(apiGroup)
64-
.toFile();
67+
.toString();
6568

6669
task.setOutputFileName(outputFileName);
6770
task.setOutputDir(outputDir);
6871
task.setOutputFormat(ResolveTask.Format.YAML);
6972
task.setSortOutput(true);
7073
task.setPrettyPrint(true);
71-
task.setClasspath(classpath);
74+
task.setClasspath(getClasspath(target));
7275
task.setBuildClasspath(task.getClasspath());
7376
task.setResourcePackages(resourcePkgs);
7477
});
7578

7679
target.getTasks().register("openapi", ResolveTask.class).configure(task -> {
7780
var outputDir = target.getLayout().getBuildDirectory().getAsFile().get().toPath()
7881
.resolve("docs").resolve("openapi")
79-
.toFile();
82+
.toString();
8083

8184
target.getTasks().findByName("jar").dependsOn(task);
8285
task.setGroup("documentation");
@@ -86,13 +89,16 @@ public void apply(Project target) {
8689
task.setOutputFormat(ResolveTask.Format.YAML);
8790
task.setSortOutput(true);
8891
task.setPrettyPrint(true);
89-
task.setClasspath(classpath);
92+
task.setClasspath(getClasspath(target));
9093
task.setBuildClasspath(task.getClasspath());
9194
task.setResourcePackages(resourcePkgs);
9295
});
9396

94-
target.getConfigurations().all(c -> c.exclude(Map.of("group", "com.fasterxml.jackson.jaxrs",
95-
"module", "jackson-jaxrs-json-provider")));
9697
});
9798
}
99+
100+
private static @NonNull FileCollection getClasspath(Project target) {
101+
return requireExtension(target, JavaPluginExtension.class)
102+
.getSourceSets().getAt("main").getRuntimeClasspath();
103+
}
98104
}

plugins/edc-build/src/test/java/org/eclipse/edc/plugins/edcbuild/conventions/SwaggerResolveConventionTest.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class SwaggerResolveConventionTest {
3535
@BeforeEach
3636
void setUp() {
3737
project = ProjectBuilder.builder().withName(PROJECT_NAME).build();
38+
project.getRepositories().mavenCentral();
3839
project.getPluginManager().apply(SWAGGER_GRADLE_PLUGIN);
3940
project.getPluginManager().apply(JavaPlugin.class);
4041
project.getExtensions().create("edcBuild", BuildExtension.class, project.getObjects());
@@ -47,9 +48,10 @@ void apply_whenApiGroupNotSpecified_shouldUseDefault() {
4748

4849
var resolveTask = (ResolveTask) project.getTasks().getByName("resolve");
4950

50-
assertThat(resolveTask.getOutputDir().toString()).endsWith("/resources/openapi/yaml");
51-
assertThat(resolveTask.getOutputFileName()).isEqualTo(PROJECT_NAME);
52-
assertThat(resolveTask.getOutputFormat()).isEqualTo(ResolveTask.Format.YAML);
51+
assertThat(resolveTask.getOutputDir().get().toString()).endsWith("/resources/openapi/yaml");
52+
assertThat(resolveTask.getOutputFileName().get()).isEqualTo(PROJECT_NAME);
53+
assertThat(resolveTask.getOutputFormat().get()).isEqualTo(ResolveTask.Format.YAML);
54+
5355
}
5456

5557
@Test
@@ -61,9 +63,9 @@ void apply_whenApiGroupSpecified_shouldAppend() {
6163

6264
var resolveTask = (ResolveTask) project.getTasks().getByName("resolve");
6365

64-
assertThat(resolveTask.getOutputDir().toString()).endsWith("/resources/openapi/yaml/test-api");
65-
assertThat(resolveTask.getOutputFileName()).isEqualTo(PROJECT_NAME);
66-
assertThat(resolveTask.getOutputFormat()).isEqualTo(ResolveTask.Format.YAML);
66+
assertThat(resolveTask.getOutputDir().get().toString()).endsWith("/resources/openapi/yaml/test-api");
67+
assertThat(resolveTask.getOutputFileName().get()).isEqualTo(PROJECT_NAME);
68+
assertThat(resolveTask.getOutputFormat().get()).isEqualTo(ResolveTask.Format.YAML);
6769
}
6870

6971
@Test
@@ -76,8 +78,8 @@ void apply_whenOutputDirSet_shouldAppend() {
7678

7779
var resolveTask = (ResolveTask) project.getTasks().getByName("resolve");
7880

79-
assertThat(resolveTask.getOutputDir().toString()).endsWith("/some/funny/path/test-api");
80-
assertThat(resolveTask.getOutputFileName()).isEqualTo(PROJECT_NAME);
81-
assertThat(resolveTask.getOutputFormat()).isEqualTo(ResolveTask.Format.YAML);
81+
assertThat(resolveTask.getOutputDir().get().toString()).endsWith("/some/funny/path/test-api");
82+
assertThat(resolveTask.getOutputFileName().get()).isEqualTo(PROJECT_NAME);
83+
assertThat(resolveTask.getOutputFormat().get()).isEqualTo(ResolveTask.Format.YAML);
8284
}
8385
}

0 commit comments

Comments
 (0)