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,

Reply via email to