This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new b48a3c942cc CAMEL-17903: camel-component-maven-plugin - Add doc about 
recompile
b48a3c942cc is described below

commit b48a3c942cc2aae641a023db69f836844ba5ba61
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat May 7 09:30:19 2022 +0200

    CAMEL-17903: camel-component-maven-plugin - Add doc about recompile
---
 .../ROOT/pages/camel-component-maven-plugin.adoc   | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-component-maven-plugin.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-component-maven-plugin.adoc
index 777181d1213..912b364a3f5 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-component-maven-plugin.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-component-maven-plugin.adoc
@@ -17,6 +17,8 @@ This goal will generate the following metadata files and Java 
files:
 * SPIs: it will generate all Service Provider Interfaces (SPI) for the 
component. This allows Camel to auto-discover your component without adding it 
manually to the Camel context.
 * Configurers: it will generate all configurer Java classes from `@Configurer` 
annotated classes.
 * Endpoint Schema: it will generate the property configurers as well as schema 
JSONs extracted from the component's Endpoint and Component classes. This 
allows Camel to avoid reflections while configuring the properties, thus allows 
for better efficiency.
+* Endpoint URI Factory: it will generate endpoint factory to build URIs from a 
map of properties.
+* Invoke on Header: it will generate source code for components using 
`@InvokeOnHeader`
 * Prepare Component: it analyzes if the maven module contains Camel modules 
such as `components`, `dataformats`, `languages` and others. And for each of 
those generates extra descriptors and schema files for easier auto-discovery in 
Camel and tooling. 
 * Validate Component: it validates the Camel component if the meta-files for 
`components`, `dataformats`, `languages` and others, all contains the needed 
meta-data such as assigned labels, documentation for each option.
 
@@ -52,6 +54,29 @@ in order to generate all the necessary files being described 
above upon compilat
 
 Thus, `mvn test`, `mvn package`, `mvn verify` and `mvn install` phases should 
run this plugin.
 
+=== Re-compile to include latest generated code
+
+The `camel-component-maven-plugin` is executed after the compiler, and because 
it outputs java source
+code, then the compiler must execute again (will only compile if source code 
has actually changed).
+
+To ensure this the following should be added to the `pom.xml` file:
+
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-compiler-plugin</artifactId>
+    <executions>
+        <execution>
+            <id>recompile</id>
+            <goals>
+                <goal>compile</goal>
+            </goals>
+            <phase>process-classes</phase>
+        </execution>
+    </executions>
+</plugin>
+----
+
 === Configuring output directory
 
 The plugin will by default generate outputs to

Reply via email to