routes - 如何为 Camel 组件/端点编写 Camel Quarkus 扩展?
问题描述
我有一个自己的骆驼组件/端点,我在Spring Boot App的许多路线中成功使用了它。我正在尝试迁移到camel quarkus并在我的应用程序中使用相同的路由。
通过简单地添加相关依赖项,无法在我的camel-quarkus 应用程序中使用此组件/端点: quarkus无法像Spring Boot那样发现此组件/端点。
显而易见的解决方案是编写一个使用这个camel-component的quarkus扩展:使用相应的camel-components实现jdbc、file、sql等quarkus扩展。
如果我们查看其运行时模块的 sql 的 pom-xml,我们会发现它使用了等效的camel-sql 组件:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-sql</artifactId>
</dependency>
我的问题是,即使按项目构建(我正在使用 eclipse),quarkus 仍然没有发现组件/端点,quarkus 显示它已经安装了我的扩展。我在互联网上搜索了很长时间,但没有找到任何有用的来源。
解决方案
显而易见的解决方案是不要编写额外的扩展。Quarkus-Runtime 发现模块或第三方依赖项中的类当且仅当:
- 第三方依赖项在宿主项目中建立索引:通过将以下条目添加到.properties文件:
quarkus.index-dependency..group-id=<group-id>
quarkus.index-dependency..artifact-id=<artifact-id>
或.yaml文件:
quarkus:
index-dependency:
<name>:
group-id: <group-id>
artifact-id: <artifact-id>
其中 <group-id> 和 <artifact-id> 是第三方的。
- jandex -maven-plugin存在于该模块或第三方依赖的pom.xml中
- 此模块/依赖项的src/main/resorces/META-INF下存在 一个空beans.xml
我在这篇文章中找到了我的问题的答案。
推荐阅读
- algorithm - 这种光线投射算法有什么缺陷?
- c - printf 不会打印双精度类型的数组值
- c++ - 使用具有私有可访问性的重载继承函数声明
- python - 在 Python 中读取文件并打印出来
- python - Python中的表情符号
- powershell - 如何访问服务器 Powershell 实例中的特定脚本文件?
- mysql - docker在alpine linux中构建python django应用程序时出错
- javascript - 如何在 React js 中尚未安装的组件中显示通知
- google-app-engine - `gcloud app deploy index.yaml` 和 `gcloud datastore index create` 之间的任何区别
- react-admin - 如何在 Windows 上开始使用 React Admin