You should know how to build.
Go through the Quarkus extension author’s guide to get an idea of what is expected from you.
Make sure that nobody else works on the same extension already by searching through the GitHub issues.
Let others know that you work on the given extension by either creating a new issue or asking to assign an existing one to you.
Scaffold the necessary Maven modules using quarkus-maven-plugin
. As an example let’s add a new extension for
supporting an imaginary Camel component foo-abc
:
cd camel-quarkus
mvn cq:create -N -Dcq.artifactIdBase=foo-abc
where:
foo-abc
is the unique part of the new extension’s artifactId
without the camel-quarkus-
prefix
The above sequence of commands does the following:
It creates three new Maven modules under the extensions
directory: camel-quarkus-foo-abc-parent
, camel-quarkus-foo-abc
(a.k.a. the runtime module) and camel-quarkus-foo-abc-deployment
.
These three modules are linked where necessary:
camel-quarkus-foo-abc-parent
is added to the <modules>
of camel-quarkus-extensions
camel-quarkus-foo-abc
is added to the <dependencyManagement>
of the runtime BOM (Bill of Materials) poms/bom/pom.xml
camel-quarkus-foo-abc-deployment
is added to the <dependencyManagement>
of the deployment BOM (Bill of Materials) poms/bom-deployment/pom.xml
It creates a basic FooAbcProcessor
class in the deployment module.
It also creates a stub of an integration test module under integration-tests/foo-abc
.
Add the extension name to the right category in tooling/scripts/test-categories.yaml
file.
Compilation performed immediately after generating the modules should pass flawlessly but running the tests will fail
because the test project needs to get finished. You need to build poms/bom
and poms/bom-deployment
one time first.
Review the generated
extensions/foo-abc/runtime/src/main/resources/META-INF/quarkus-extension.yaml
file.
The
description
comes from Camel Catalog. If it looks improper or too long due to concatenation of multiple
component descriptions, you may override it by setting an explicit <description>
in the runtime pom.xml
of your new extension. If you think the value coming from Camel Catalog should be changed, please
file a new Camel issue and ask to fix the metadata
for the given Camel component.
If there is some important keyword missing in both the name
and description
through which your new extension
should definitely be findable on {link-quarkus-code-generator}, consider setting
<quarkus.metadata.keywords>
property in your runtime pom.xml
.
Run mvn -N cq:update-quarkus-metadata
from the source tree’s root directory to re-generate the
quarkus-extension.yaml
file.
Check the Extension metadata page for more details about the quarkus-extension.yaml
file
Review the dependencies in the generated runtime and deployment modules. In case the given library is supported by Quarkus, you may want to add a dependency on the corresponding Quarkus extension.
Complete the integration test module under integration-tests/foo-abc
,
following the Extension testing guide.
Make sure the tests are passing both in the JVM mode (mvn test
) and in the native mode (mvn verify -Pnative
).
In case of problems, consult the Quarkus extension author’s guide, ask for help in the given GitHub issue or via Camel Quarkus chat.
Read the Extension documentation page and add configuration.adoc
,
usage.adoc
, etc. in src/main/doc
directory of the runtime module if necessary.
After completing the extension documentation, run `mvn clean install -DskipTests` from the root of the source tree to add your extension to the autogenerated list of extensions.
Before sending a pull request, please make sure you have run the following Maven command from the project root folder:
mvn process-resources -Pformat
The above command will perform the following tasks:
Add license headers to the new files
Re-generate the list of extensions and the Camel Quarkus Catalog
Sort elements in various POM files properly
Review the result visually.
Please squash your commits before sending a pull request.
Good luck!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )