This is an automated email from the ASF dual-hosted git repository.
zhfeng pushed a commit to branch 3.15.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/3.15.x by this push:
new 2ae8816cad Workaround + fixed generator/resolver of bean catalog in
maven-plugin (#6557)
2ae8816cad is described below
commit 2ae8816cad541a98eb67023c172d9964caff6895
Author: JiriOndrusek <[email protected]>
AuthorDate: Fri Sep 27 03:41:14 2024 +0200
Workaround + fixed generator/resolver of bean catalog in maven-plugin
(#6557)
---
.../org/apache/camel/quarkus/maven/CqCatalog.java | 28 ++++++++++++++++++++--
.../quarkus/maven/PrepareCatalogQuarkusMojo.java | 2 +-
2 files changed, 27 insertions(+), 3 deletions(-)
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 415c2c465a..613c885de4 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
@@ -120,7 +120,8 @@ public class CqCatalog {
public CqCatalog(Flavor flavor, Function<String, InputStream>
resourceLocator) {
this.flavor = flavor;
- final DefaultCamelCatalog c = new DefaultCamelCatalog(true);
+ // workaround for catalog `beans/*.json`, see comment on
BeansWorkaroundCustomCatalog for more information
+ final DefaultCamelCatalog c = new BeansWorkaroundCustomCatalog(true);
c.setRuntimeProvider(flavor.createRuntimeProvider(c));
c.setVersionManager(new CqVersionManager(c, resourceLocator));
this.catalog = c;
@@ -197,6 +198,8 @@ public class CqCatalog {
switch (model.getKind()) {
case bean:
rawJson = JsonMapper.createParameterJsonSchema((PojoBeanModel)
model);
+ //workaround
+ rawJson = rawJson.replace("model", "bean");
break;
case component:
rawJson = JsonMapper.createParameterJsonSchema((ComponentModel)
model);
@@ -346,6 +349,7 @@ public class CqCatalog {
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";
+ private static final String BEANS_CATALOG = CQ_CATALOG_DIR +
"/beans.properties";
private static final String CAPABILITIES_CATALOG =
"org/apache/camel/catalog/capabilities.properties";
private CamelCatalog camelCatalog;
@@ -438,6 +442,10 @@ public class CqCatalog {
return OTHER_CATALOG;
}
+ protected String getBeansCatalog() {
+ return BEANS_CATALOG;
+ }
+
protected String getCapabilitiesCatalog() {
return CAPABILITIES_CATALOG;
}
@@ -529,7 +537,7 @@ public class CqCatalog {
@Override
public List<String> findBeansNames() {
List<String> names = new ArrayList<>();
- InputStream is =
getCamelCatalog().getVersionManager().getResourceAsStream(getPojoBeanJSonSchemaDirectory());
+ InputStream is =
getCamelCatalog().getVersionManager().getResourceAsStream(getBeansCatalog());
if (is != null) {
try {
CatalogHelper.loadLines(is, names);
@@ -586,4 +594,20 @@ public class CqCatalog {
}
}
+ /**
+ * Prior https://github.com/apache/camel/pull/15708, the catalog files
from `beans/*json` might have contained
+ * attribute `model` instead of `bean`. This custom catalog is fixing the
json, to be parsable by Camel
+ * tooling.
+ */
+ public static class BeansWorkaroundCustomCatalog extends
DefaultCamelCatalog {
+ public BeansWorkaroundCustomCatalog(boolean caching) {
+ super(caching);
+ }
+
+ @Override
+ public String pojoBeanJSonSchema(String name) {
+ return
getJSonSchemaResolver().getPojoBeanJSonSchema(name).replace("model", "bean");
+ }
+ }
+
}
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 74a853567d..22726478d9 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
@@ -88,7 +88,7 @@ public class PrepareCatalogQuarkusMojo extends
AbstractExtensionListMojo {
final CqCatalog catalog = CqCatalog.findFirstFromClassPath();
if (extendClassPathCatalog) {
catalog.store(catalogBaseDir.toPath());
- catalog.models().forEach(model ->
schemesByKind.get(model.getKind()).add(model.getName()));
+ catalog.models().forEach(model ->
schemesByKind.get(model.getKind().name()).add(model.getName()));
}
findExtensions()