Skip to content

Commit f50ba82

Browse files
Set classpaths for select
This updates the select command to set its classpaths. This is necessary to be able to run select on projects with dependencies without having to set the allow unknown traits flag, which you shouldn't have to do.
1 parent 680a72d commit f50ba82

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

buildSrc/src/main/kotlin/smithy-gradle-plugin.java-conventions.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ java {
1010
}
1111

1212
dependencies {
13-
implementation("software.amazon.smithy:smithy-model:[1.0, 2.0[")
14-
implementation("software.amazon.smithy:smithy-build:[1.0, 2.0[")
15-
implementation("software.amazon.smithy:smithy-cli:[1.0, 2.0[")
13+
implementation("software.amazon.smithy:smithy-model:[1.60.2, 2.0[")
14+
implementation("software.amazon.smithy:smithy-build:[1.60.2, 2.0[")
15+
implementation("software.amazon.smithy:smithy-cli:[1.60.2, 2.0[")
1616
}
1717

1818
//// ==== Licensing =====

examples/base-plugin/uses-explicitly-set-cli-version/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
dependencies {
10-
smithyCli("software.amazon.smithy:smithy-cli:1.45.0")
10+
smithyCli("software.amazon.smithy:smithy-cli:1.60.2")
1111
}
1212

1313
repositories {

smithy-base/src/it/java/software/amazon/smithy/gradle/SelectTaskTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,21 @@ public void selectsWithShowTraitsString() {
6060
Assertions.assertTrue(result.getOutput().contains("\"smithy.api#documentation\": \"a string member\""));
6161
});
6262
}
63+
64+
@Test
65+
public void selectUsesGradleClasspath() {
66+
Utils.withCopy("base-plugin/output-directory", buildDir -> {
67+
BuildResult result = GradleRunner.create()
68+
.forwardOutput()
69+
.withProjectDir(buildDir)
70+
.withArguments("select", "--selector", "operation[trait|aws.auth#unsignedPayload]")
71+
.build();
72+
73+
Utils.assertSmithyBuildDidNotRun(result);
74+
Utils.assertArtifactsNotCreated(buildDir,
75+
"build/smithyprojections/output-directory/source/build-info/smithy-build-info.json");
76+
77+
Assertions.assertTrue(result.getOutput().contains("smithy.example#Foo"));
78+
});
79+
}
6380
}

smithy-base/src/it/java/software/amazon/smithy/gradle/UsesExplicitlySetCLIVersionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void usesExplicitCliVersion() {
1717

1818
Utils.assertSmithyBuildTaskRan(result);
1919
Utils.assertValidationRan(result);
20-
Assertions.assertTrue(result.getOutput().contains("(using explicitly configured Smithy CLI: 1.45.0)"));
20+
Assertions.assertTrue(result.getOutput().contains("(using explicitly configured Smithy CLI: 1.60.2)"));
2121
});
2222
}
2323
}

smithy-base/src/main/java/software/amazon/smithy/gradle/SmithyBasePlugin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,16 @@ private void addSelectTaskForSourceSet(SourceSet sourceSet, SmithySourceDirector
171171
SmithyExtension extension
172172
) {
173173
String taskName = SmithyUtils.getRelativeSourceSetName(sourceSet, SMITHY_SELECT_TASK_NAME);
174+
String runtimeConfigName = sourceSet.getRuntimeClasspathConfigurationName();
174175
project.getTasks().register(taskName, SmithySelectTask.class, selectTask -> {
175176
selectTask.setDescription("Selects smithy models in " + sourceSet.getName() + " source set.");
176177
selectTask.getAllowUnknownTraits().set(extension.getAllowUnknownTraits());
177178
selectTask.getModels().set(sds.getSourceDirectories());
178179
selectTask.getFork().set(extension.getFork());
180+
selectTask.getCliClasspath().set(project.getConfigurations()
181+
.getByName(SmithyUtils.SMITHY_CLI_CONFIGURATION_NAME));
182+
selectTask.getModelDiscoveryClasspath().set(project.getConfigurations()
183+
.getByName(runtimeConfigName));
179184
});
180185
}
181186

0 commit comments

Comments
 (0)