Skip to content

Commit 9648720

Browse files
authored
feat: add default package in case no one is specified (#442)
1 parent 6923581 commit 9648720

3 files changed

Lines changed: 29 additions & 7 deletions

File tree

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ public void apply(Project target) {
5858
var resolve = tasks.named("resolve");
5959
resolve.configure(it -> it.setEnabled(false));
6060

61-
var openapiAll = tasks.register("openapi");
62-
6361
target.afterEvaluate(p -> getApiGroups(swaggerExt).forEach(apiGroup -> {
6462
var resolveTask = tasks.register("resolve" + apiGroup.name(), ResolveTask.class, task -> {
6563
var fallbackOutputDir = defaultOutputDirectory(target);
@@ -90,7 +88,6 @@ public void apply(Project target) {
9088

9189
baseTaskConfiguration(task, target);
9290
});
93-
openapiAll.configure(t -> t.dependsOn(openapiTask));
9491
tasks.named("jar").configure(t -> t.dependsOn(openapiTask));
9592
}));
9693

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,20 @@
2323

2424
public abstract class SwaggerGeneratorExtension {
2525

26-
private Set<String> resourcePackages = Set.of("org.eclipse.edc");
27-
private Set<ApiGroup> apiGroups = new HashSet<>();
26+
public static final String DEFAULT_PACKAGE = "org.eclipse.edc";
27+
private Set<String> resourcePackages = Set.of(DEFAULT_PACKAGE);
28+
private final Set<ApiGroup> apiGroups = new HashSet<>();
2829

2930
public abstract Property<String> getOutputFilename();
3031

3132
public abstract Property<File> getOutputDirectory();
3233

34+
@Deprecated(since = "0.15.1")
3335
public Set<String> getResourcePackages() {
3436
return resourcePackages;
3537
}
3638

39+
@Deprecated(since = "0.15.1")
3740
public void setResourcePackages(Set<String> resourcePackages) {
3841
this.resourcePackages = resourcePackages;
3942
}
@@ -48,7 +51,8 @@ public void setResourcePackages(Set<String> resourcePackages) {
4851
public abstract Property<String> getApiGroup();
4952

5053
public void apiGroup(String group, String... packages) {
51-
apiGroups.add(new ApiGroup(group, new HashSet<>(Arrays.asList(packages))));
54+
var groupPackages = packages.length == 0 ? Set.of(DEFAULT_PACKAGE) : new HashSet<>(Arrays.asList(packages));
55+
apiGroups.add(new ApiGroup(group, groupPackages));
5256
}
5357

5458
public Set<ApiGroup> getApiGroups() {

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ void shouldDisableTask_whenNoGroupSpecified() {
5555
}
5656

5757
@Test
58-
void apply_whenApiGroupSpecified_shouldAppend() {
58+
void shouldCreateTaskForApiGroup() {
5959
var swagger = ConventionFunctions.requireExtension(project, BuildExtension.class).getSwagger();
6060
swagger.apiGroup("test-api");
6161

@@ -69,6 +69,27 @@ void apply_whenApiGroupSpecified_shouldAppend() {
6969
assertThat(actual.getOutputDir().get().toString()).endsWith("/resources/openapi/yaml/test-api");
7070
assertThat(actual.getOutputFileName().get()).isEqualTo(PROJECT_NAME);
7171
assertThat(actual.getOutputFormat().get()).isEqualTo(ResolveTask.Format.YAML);
72+
assertThat(actual.getResourcePackages().get()).containsExactly("org.eclipse.edc");
73+
});
74+
});
75+
}
76+
77+
@Test
78+
void shouldAssignPackageNames() {
79+
var swagger = ConventionFunctions.requireExtension(project, BuildExtension.class).getSwagger();
80+
swagger.apiGroup("test-api", "package.name");
81+
82+
convention.apply(project);
83+
((ProjectInternal) project).evaluate();
84+
var resolveTask = project.getTasks().getByName("resolve");
85+
86+
assertThat(resolveTask.getDependsOn()).hasSize(1).first().isInstanceOfSatisfying(TaskProvider.class, taskProvider -> {
87+
assertThat(taskProvider.isPresent()).isTrue();
88+
assertThat(taskProvider.get()).isInstanceOfSatisfying(ResolveTask.class, actual -> {
89+
assertThat(actual.getOutputDir().get().toString()).endsWith("/resources/openapi/yaml/test-api");
90+
assertThat(actual.getOutputFileName().get()).isEqualTo(PROJECT_NAME);
91+
assertThat(actual.getOutputFormat().get()).isEqualTo(ResolveTask.Format.YAML);
92+
assertThat(actual.getResourcePackages().get()).containsExactly("package.name");
7293
});
7394
});
7495
}

0 commit comments

Comments
 (0)