From 463b7455175214f1e5f4e5f3711b7506fbcb0afe Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Thu, 26 Oct 2023 18:45:44 +0100 Subject: [PATCH] Bump and proper package (#39) * Bump Kiota and generate in a namespace friendly folder * cleanup --- .../kiota/tests/BasicCodegenTest.java | 4 ++-- .../redhat/cloud/kiota/maven/KiotaMojo.java | 20 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/plugin-it/src/it/basic-codegen-test/src/test/java/com/github/andreatp/kiota/tests/BasicCodegenTest.java b/plugin-it/src/it/basic-codegen-test/src/test/java/com/github/andreatp/kiota/tests/BasicCodegenTest.java index 241f9ff..cf30836 100755 --- a/plugin-it/src/it/basic-codegen-test/src/test/java/com/github/andreatp/kiota/tests/BasicCodegenTest.java +++ b/plugin-it/src/it/basic-codegen-test/src/test/java/com/github/andreatp/kiota/tests/BasicCodegenTest.java @@ -18,13 +18,13 @@ import org.junit.Test; -import apisdk.models.Widget; +import com.apisdk.models.Widget; public class BasicCodegenTest { @Test public void test() throws Exception { - Class.forName("apisdk.models.Widget"); + Class.forName("com.apisdk.models.Widget"); Widget widget = new Widget(); widget.setName("Test"); diff --git a/plugin/src/main/java/com/redhat/cloud/kiota/maven/KiotaMojo.java b/plugin/src/main/java/com/redhat/cloud/kiota/maven/KiotaMojo.java index 7bc1c1c..e2ef747 100644 --- a/plugin/src/main/java/com/redhat/cloud/kiota/maven/KiotaMojo.java +++ b/plugin/src/main/java/com/redhat/cloud/kiota/maven/KiotaMojo.java @@ -72,7 +72,7 @@ public class KiotaMojo extends AbstractMojo { /** * Version of Kiota to be used */ - @Parameter(defaultValue = "1.6.1") + @Parameter(defaultValue = "1.7.0") private String kiotaVersion; // Kiota Options @@ -101,6 +101,15 @@ public class KiotaMojo extends AbstractMojo { @Parameter(defaultValue = "${project.build.directory}/generated-sources/kiota") private File targetDirectory; + private File finalTargetDirectory() { + Path namespaceResolver = targetDirectory.toPath(); + + for (String part: namespace.split("\\.")) { + namespaceResolver = namespaceResolver.resolve(part); + } + return namespaceResolver.toFile(); + } + /** * Language to generate the code for: * @@ -119,7 +128,7 @@ public class KiotaMojo extends AbstractMojo { * The namespace to use for the core client class specified with the --class-name option. [default: ApiSdk] * */ - @Parameter(defaultValue = "ApiSdk") + @Parameter(defaultValue = "com.apisdk") private String namespace; /** @@ -225,7 +234,7 @@ private String runProcess(List cmd, boolean returnOutput) { if (ps.exitValue() != 0) { throw new RuntimeException("Error executing the Kiota command, exit code is " + ps.exitValue()); } - File kiotaLockFile = new File(targetDirectory, "kiota-lock.json"); + File kiotaLockFile = new File(finalTargetDirectory(), "kiota-lock.json"); if (!kiotaLockFile.exists()) { throw new RuntimeException("Error executing the Kiota command, no output found, cannot find the generated lock file."); } @@ -268,11 +277,14 @@ private void executeKiota(String binary, File openApiSpec) { throw new IllegalArgumentException("Spec file not found on the path: " + openApiSpec.getAbsolutePath()); } List cmd = new ArrayList<>(); + finalTargetDirectory().mkdirs(); + String finalTargetDirectory = finalTargetDirectory().getAbsolutePath(); + cmd.add(binary); cmd.add("generate"); // process command line options cmd.add("--openapi"); cmd.add(openApiSpec.getAbsolutePath()); - cmd.add("--output"); cmd.add(targetDirectory.getAbsolutePath()); + cmd.add("--output"); cmd.add(finalTargetDirectory); cmd.add("--language"); cmd.add(language); cmd.add("--class-name"); cmd.add(clientClass); cmd.add("--namespace-name"); cmd.add(namespace);