jamesnetherton commented on a change in pull request #1098: Docs navigation improvements, docs wording URL: https://github.com/apache/camel-quarkus/pull/1098#discussion_r409412900
########## File path: docs/modules/ROOT/pages/create-new-extension.adoc ########## @@ -0,0 +1,79 @@ +[[create-a-new-extension]] += Create a new extension + +1. You should know link:#how-to-build[how to build]. + +2. Go through the https://quarkus.io/guides/extension-authors-guide[Quarkus extension author's guide] to get an idea + what is expecting you. + +3. Make sure that nobody else works on the same extension already by searching through the + https://github.com/apache/camel-quarkus/issues[GitHub issues]. + +4. Let others know that you work on the given extension by either creating a + https://github.com/apache/camel-quarkus/issues/new[new issue] or asking to assign an existing one to you. + +5. 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`: ++ +[source,shell] +---- +$ 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`. ++ +A 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. + +6. Review the generated + `extensions/foo-abc/runtime/src/main/resources/META-INF/quarkus-extension.yaml` file. If you + see improper description or keyword, + https://issues.apache.org/jira/secure/CreateIssue!default.jspa[file a new Camel issue] and ask to fix the metadata + for the given Camel component. +7. Review the dependencies in the generate runtime and deployment modules. In case the given library is supported by Review comment: `generated` instead of `generate` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
