This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new 8cdc3a1885 Add beans to the catalog 8cdc3a1885 is described below commit 8cdc3a18858dae96daf75f36a5c48d9b2c0dbef0 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Mon Jul 22 08:35:58 2024 +0100 Add beans to the catalog Fixes #6199 --- .../camel/catalog/quarkus/QuarkusRuntimeProvider.java | 6 +++--- .../camel/catalog/quarkus/QuarkusRuntimeProviderTest.java | 10 ++++++++++ .../main/java/org/apache/camel/quarkus/maven/CqCatalog.java | 13 +++++++++---- .../main/java/org/apache/camel/quarkus/maven/CqUtils.java | 8 +++++++- .../camel/quarkus/maven/PrepareCatalogQuarkusMojo.java | 6 +++++- 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java index 8d06a0bb20..034c970659 100644 --- a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java +++ b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java @@ -37,14 +37,14 @@ public class QuarkusRuntimeProvider implements RuntimeProvider { private static final String COMPONENT_DIR = "org/apache/camel/catalog/quarkus/components"; private static final String DATAFORMAT_DIR = "org/apache/camel/catalog/quarkus/dataformats"; - private static final String DEV_CONSOLE_DIR = "org/apache/camel/catalog/quarkus/consoles"; + private static final String DEV_CONSOLE_DIR = "org/apache/camel/catalog/quarkus/dev-consoles"; private static final String LANGUAGE_DIR = "org/apache/camel/catalog/quarkus/languages"; private static final String TRANSFORMER_DIR = "org/apache/camel/catalog/quarkus/transformers"; private static final String OTHER_DIR = "org/apache/camel/catalog/quarkus/others"; - private static final String BEANS_DIR = "org/apache/camel/catalog/beans"; + private static final String BEANS_DIR = "org/apache/camel/catalog/quarkus/beans"; private static final String CAPABILITIES_CATALOG = "org/apache/camel/catalog/quarkus/capabilities.properties"; private static final String COMPONENTS_CATALOG = "org/apache/camel/catalog/quarkus/components.properties"; - private static final String DEV_CONSOLE_CATALOG = "org/apache/camel/catalog/quarkus/consoles.properties"; + private static final String DEV_CONSOLE_CATALOG = "org/apache/camel/catalog/quarkus/dev-consoles.properties"; private static final String DATA_FORMATS_CATALOG = "org/apache/camel/catalog/quarkus/dataformats.properties"; private static final String LANGUAGE_CATALOG = "org/apache/camel/catalog/quarkus/languages.properties"; private static final String TRANSFORMER_CATALOG = "org/apache/camel/catalog/quarkus/transformers.properties"; diff --git a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java index 8b4b2c7978..2f40b6ab64 100644 --- a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java +++ b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java @@ -205,6 +205,16 @@ public class QuarkusRuntimeProviderTest { assertTrue(names.contains("azure-storage-blob:application-cloudevents")); } + @Test + public void testFindBeans() { + List<String> names = catalog.findBeansNames(); + + assertNotNull(names); + assertFalse(names.isEmpty()); + + assertTrue(names.contains("CronScheduledRoutePolicy")); + } + @Test public void testComponentArtifactId() throws Exception { String json = catalog.componentJSonSchema("salesforce"); diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java index 912b1463d7..415c2c465a 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java @@ -47,6 +47,7 @@ import org.apache.camel.tooling.model.JsonMapper; import org.apache.camel.tooling.model.Kind; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.OtherModel; +import org.apache.camel.tooling.model.PojoBeanModel; import org.apache.camel.tooling.model.TransformerModel; public class CqCatalog { @@ -184,7 +185,8 @@ public class CqCatalog { } static void serialize(final Path catalogPath, ArtifactModel<?> model) { - final Path out = catalogPath.resolve(model.getKind() + "s") + String kind = model.getKind() == Kind.console ? "dev-consoles" : model.getKind().toString() + "s"; + final Path out = catalogPath.resolve(kind) .resolve(model.getName().replace(":", "-") + ".json"); try { Files.createDirectories(out.getParent()); @@ -193,6 +195,9 @@ public class CqCatalog { } String rawJson; switch (model.getKind()) { + case bean: + rawJson = JsonMapper.createParameterJsonSchema((PojoBeanModel) model); + break; case component: rawJson = JsonMapper.createParameterJsonSchema((ComponentModel) model); break; @@ -224,7 +229,7 @@ public class CqCatalog { public static Stream<Kind> kinds() { return Stream.of(Kind.values()) - .filter(kind -> (kind != Kind.eip && kind != Kind.model && kind != Kind.bean)); + .filter(kind -> (kind != Kind.eip && kind != Kind.model)); } public static boolean isFirstScheme(ArtifactModel<?> model) { @@ -330,14 +335,14 @@ public class CqCatalog { private static final String COMPONENT_DIR = CQ_CATALOG_DIR + "/components"; private static final String DATAFORMAT_DIR = CQ_CATALOG_DIR + "/dataformats"; - private static final String DEV_CONSOLE_DIR = CQ_CATALOG_DIR + "/consoles"; + private static final String DEV_CONSOLE_DIR = CQ_CATALOG_DIR + "/dev-consoles"; private static final String LANGUAGE_DIR = CQ_CATALOG_DIR + "/languages"; private static final String TRANSFORMER_DIR = CQ_CATALOG_DIR + "/transformers"; private static final String OTHER_DIR = CQ_CATALOG_DIR + "/others"; private static final String BEANS_DIR = CQ_CATALOG_DIR + "/beans"; private static final String COMPONENTS_CATALOG = CQ_CATALOG_DIR + "/components.properties"; private static final String DATA_FORMATS_CATALOG = CQ_CATALOG_DIR + "/dataformats.properties"; - private static final String DEV_CONSOLE_CATALOG = CQ_CATALOG_DIR + "/consoles.properties"; + private static final String DEV_CONSOLE_CATALOG = CQ_CATALOG_DIR + "/dev-consoles.properties"; private static final String LANGUAGE_CATALOG = CQ_CATALOG_DIR + "/languages.properties"; private static final String TRANSFORMER_CATALOG = CQ_CATALOG_DIR + "/transformers.properties"; private static final String OTHER_CATALOG = CQ_CATALOG_DIR + "/others.properties"; diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java index 6e4dbbcbb3..894091ec7c 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java @@ -41,10 +41,12 @@ import freemarker.template.TemplateExceptionHandler; import org.apache.camel.tooling.model.ArtifactModel; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.DataFormatModel; +import org.apache.camel.tooling.model.DevConsoleModel; import org.apache.camel.tooling.model.JsonMapper; import org.apache.camel.tooling.model.Kind; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.OtherModel; +import org.apache.camel.tooling.model.PojoBeanModel; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.plugin.logging.Log; @@ -173,6 +175,8 @@ public class CqUtils { public static String humanReadableKind(Kind kind) { switch (kind) { + case bean: + return "bean"; case component: return "component"; case console: @@ -265,10 +269,12 @@ public class CqUtils { public static ArtifactModel<?> cloneArtifactModel(ArtifactModel<?> model) { final Kind kind = model.getKind(); switch (kind) { + case bean: + return JsonMapper.generatePojoBeanModel(JsonMapper.asJsonObject((PojoBeanModel) model)); case component: return JsonMapper.generateComponentModel(JsonMapper.asJsonObject((ComponentModel) model)); case console: - return null; + return JsonMapper.generateDevConsoleModel(JsonMapper.asJsonObject((DevConsoleModel) model)); case dataformat: return JsonMapper.generateDataFormatModel(JsonMapper.asJsonObject((DataFormatModel) model)); case language: diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java index 993c183800..1944571019 100644 --- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java +++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java @@ -35,6 +35,7 @@ import org.apache.camel.tooling.model.DevConsoleModel; import org.apache.camel.tooling.model.Kind; import org.apache.camel.tooling.model.LanguageModel; import org.apache.camel.tooling.model.OtherModel; +import org.apache.camel.tooling.model.PojoBeanModel; import org.apache.camel.tooling.model.SupportLevel; import org.apache.camel.tooling.model.TransformerModel; import org.apache.maven.plugin.MojoExecutionException; @@ -139,6 +140,8 @@ public class PrepareCatalogQuarkusMojo extends AbstractExtensionListMojo { model = new LanguageModel(); } else if (extKind == Kind.transformer) { model = new TransformerModel(); + } else if (extKind == Kind.bean) { + model = new PojoBeanModel(); } else { model = new OtherModel(); } @@ -164,7 +167,8 @@ public class PrepareCatalogQuarkusMojo extends AbstractExtensionListMojo { }); CqCatalog.kinds().forEach(kind -> { - final Path newCatalog = catalogPath.resolve(kind.name() + "s.properties"); + String path = kind == Kind.console ? "dev-consoles" : kind + "s"; + final Path newCatalog = catalogPath.resolve(path + ".properties"); try { Files.createDirectories(newCatalog.getParent()); Files.write(newCatalog,