如何为Camel组件/端点编写Camel Quarkus扩展



我有一个自己的骆驼组件/端点,我在Spring Boot应用程序中的许多路由中成功使用了它。我正在尝试迁移到骆驼夸库,并在我的应用程序中使用相同的路由

在我的camel quarkus应用程序中,仅添加相关依赖项是不可能使用此组件/端点的:quarkus无法像Spring Boot那样发现此组件/端点。

显而易见的解决方案是编写一个quarkus扩展,该扩展使用camel组件quakus扩展,如jdbc、file、sql等,都是使用相应的camel组件实现的。

如果我们查看其运行时模块的sql的pom-xml,我们会发现它使用了等效的camel-sql组件:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-sql</artifactId>
</dependency>

我的问题是,即使是按项目构建(我使用的是eclipse(,quarkus仍然没有发现组件/端点,quakus显示它已经安装了我的扩展。我在网上搜索了很长时间,但没有找到任何有用的来源。

使用这个依赖关系。所有的夸库依赖性都是从组id开始的,是org.apache.camel.夸库和人工制品camelquarkus xxx

<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-sql</artifactId>
</dependency>

用于postgresql

<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>

显而易见的解决方案是不编写额外的扩展。Quarkus Runtime发现模块或第三方依赖项中的类当且仅当:

  1. 第三方依赖项在主机项目中进行索引:通过将以下条目添加到.properties文件:

quarkus.index依赖项..组id=<组id>
quarkus.index依赖项..artifact id=<工件id>

.yaml文件:

quarkus:  
index-dependency:
<name>:
group-id: <group-id>
artifact-id: <artifact-id> 

其中<组id>并且<工件id>是第三方的。

  1. jandex-maven插件存在于该模块或第三方依赖项的pom.xml
  2. 下存在一个空的beans.xmlsrc/main/resorces/META-INF的这个模块/依赖项

我在这篇文章中找到了我的问题的答案。

最新更新