You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/01/11 22:09:08 UTC

[camel] 03/13: Generate jaxb.index files

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

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

commit 0ebc2a49c74e41ff5a6fb484a4072d4b066c5537
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Dec 11 15:21:34 2018 +0100

    Generate jaxb.index files
    
    # Conflicts:
    #	camel-core/pom.xml
---
 camel-api/pom.xml                                  |  38 ++++
 camel-core/pom.xml                                 |  27 +++
 .../src/main/resources/org/apache/camel/jaxb.index |  22 ---
 .../org/apache/camel/model/cloud/jaxb.index        |  38 ----
 .../org/apache/camel/model/config/jaxb.index       |  19 --
 .../org/apache/camel/model/dataformat/jaxb.index   |  64 -------
 .../resources/org/apache/camel/model/jaxb.index    | 106 -----------
 .../org/apache/camel/model/language/jaxb.index     |  35 ----
 .../org/apache/camel/model/loadbalancer/jaxb.index |  23 ---
 .../org/apache/camel/model/rest/jaxb.index         |  40 -----
 .../org/apache/camel/model/transformer/jaxb.index  |  21 ---
 .../org/apache/camel/model/validator/jaxb.index    |  21 ---
 .../org/apache/camel/support/dump/jaxb.index       |  19 --
 .../org/apache/camel/util/concurrent/jaxb.index    |  17 --
 parent/pom.xml                                     |   1 +
 tooling/maven/camel-package-maven-plugin/pom.xml   |   7 +
 .../camel/maven/packaging/PackageJaxbMojo.java     | 199 +++++++++++++++++++++
 17 files changed, 272 insertions(+), 425 deletions(-)

diff --git a/camel-api/pom.xml b/camel-api/pom.xml
index 6875740..4873fc9 100644
--- a/camel-api/pom.xml
+++ b/camel-api/pom.xml
@@ -69,6 +69,44 @@
 
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-package-maven-plugin</artifactId>
+        <version>${project.version}</version>
+        <executions>
+          <execution>
+            <id>jaxb-list</id>
+            <goals>
+              <goal>generate-jaxb-list</goal>
+            </goals>
+            <phase>process-classes</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-generated-resources</id>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+            <phase>process-classes</phase>
+            <configuration>
+              <resources>
+                <resource>
+                  <directory>${basedir}/target/generated/camel/jaxb</directory>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
   <reporting>
     <plugins>
       <plugin>
diff --git a/camel-core/pom.xml b/camel-core/pom.xml
index 6b08aaf..dfa4572 100644
--- a/camel-core/pom.xml
+++ b/camel-core/pom.xml
@@ -474,6 +474,14 @@
             </goals>
             <phase>process-classes</phase>
           </execution>
+          <!-- camel-core needs to generate jaxb.index files -->
+          <execution>
+            <id>jaxb-list</id>
+            <goals>
+              <goal>generate-jaxb-list</goal>
+            </goals>
+            <phase>process-classes</phase>
+          </execution>
           <!-- camel-core needs to validate before packaging -->
           <execution>
             <id>validate</id>
@@ -493,6 +501,25 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-generated-resources</id>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+            <phase>process-classes</phase>
+            <configuration>
+              <resources>
+                <resource>
+                  <directory>${basedir}/target/generated/camel/jaxb</directory>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/camel-core/src/main/resources/org/apache/camel/jaxb.index b/camel-core/src/main/resources/org/apache/camel/jaxb.index
deleted file mode 100644
index a589449..0000000
--- a/camel-core/src/main/resources/org/apache/camel/jaxb.index
+++ /dev/null
@@ -1,22 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-ExchangePattern
-LoggingLevel
-ManagementStatisticsLevel
-TypeConverterExists
-ShutdownRoute
-ShutdownRunningTask
\ No newline at end of file
diff --git a/camel-core/src/main/resources/org/apache/camel/model/cloud/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/cloud/jaxb.index
deleted file mode 100644
index 4a2052b..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/cloud/jaxb.index
+++ /dev/null
@@ -1,38 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-BlacklistServiceCallServiceFilterConfiguration
-CustomServiceCallServiceFilterConfiguration
-CombinedServiceCallServiceFilterConfiguration
-CombinedServiceCallServiceDiscoveryConfiguration
-CachingServiceCallServiceDiscoveryConfiguration
-ConsulServiceCallServiceDiscoveryConfiguration
-DefaultServiceCallServiceLoadBalancerConfiguration
-DnsServiceCallServiceDiscoveryConfiguration
-EtcdServiceCallServiceDiscoveryConfiguration
-HealthyServiceCallServiceFilterConfiguration
-KubernetesServiceCallServiceDiscoveryConfiguration
-PassThroughServiceCallServiceFilterConfiguration
-RibbonServiceCallServiceLoadBalancerConfiguration
-ServiceCallDefinition
-ServiceCallConfigurationDefinition
-ServiceCallExpressionConfiguration
-ServiceCallServiceDiscoveryConfiguration
-ServiceCallServiceFilterConfiguration
-ServiceCallServiceChooserConfiguration
-ServiceCallServiceLoadBalancerConfiguration
-StaticServiceCallServiceDiscoveryConfiguration
-ZooKeeperServiceCallServiceDiscoveryConfiguration
diff --git a/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index
deleted file mode 100644
index 8bd139d..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index
+++ /dev/null
@@ -1,19 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-BatchResequencerConfig
-ResequencerConfig
-StreamResequencerConfig
diff --git a/camel-core/src/main/resources/org/apache/camel/model/dataformat/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/dataformat/jaxb.index
deleted file mode 100644
index d069299..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/dataformat/jaxb.index
+++ /dev/null
@@ -1,64 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-ASN1DataFormat
-AvroDataFormat
-BarcodeDataFormat
-Base64DataFormat
-BeanioDataFormat
-BindyDataFormat
-BindyType
-BoonDataFormat
-CryptoDataFormat
-CsvDataFormat
-CustomDataFormat
-DataFormatsDefinition
-JacksonXMLDataFormat
-FhirJsonDataFormat
-FhirXmlDataFormat
-FlatpackDataFormat
-GzipDataFormat
-HL7DataFormat
-IcalDataFormat
-JaxbDataFormat
-JibxDataFormat
-JsonDataFormat
-JsonLibrary
-LZFDataFormat
-MimeMultipartDataFormat
-PGPDataFormat
-ProtobufDataFormat
-RssDataFormat
-SerializationDataFormat
-SoapJaxbDataFormat
-StringDataFormat
-SyslogDataFormat
-TarFileDataFormat
-ThriftDataFormat
-TidyMarkupDataFormat
-UniVocityCsvDataFormat
-UniVocityFixedWidthDataFormat
-UniVocityHeader
-UniVocityTsvDataFormat
-XmlRpcDataFormat
-XMLSecurityDataFormat
-XStreamDataFormat
-YAMLDataFormat
-YAMLLibrary
-YAMLTypeFilterDefinition
-YAMLTypeFilterType
-ZipDataFormat
-ZipFileDataFormat
diff --git a/camel-core/src/main/resources/org/apache/camel/model/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
deleted file mode 100644
index 92f62f5..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
+++ /dev/null
@@ -1,106 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-AggregateDefinition
-BeanDefinition
-CatchDefinition
-ChoiceDefinition
-ClaimCheckDefinition
-ClaimCheckOperation
-ConvertBodyDefinition
-ContextScanDefinition
-DataFormatDefinition
-DelayDefinition
-DescriptionDefinition
-DynamicRouterDefinition
-EnrichDefinition
-ExpressionSubElementDefinition
-FilterDefinition
-FinallyDefinition
-FromDefinition
-GlobalOptionsDefinition
-GlobalOptionDefinition
-HystrixDefinition
-HystrixConfigurationDefinition
-IdempotentConsumerDefinition
-InOnlyDefinition
-InOutDefinition
-InputTypeDefinition
-InterceptDefinition
-InterceptFromDefinition
-InterceptSendToEndpointDefinition
-LoadBalanceDefinition
-LoadBalancerDefinition
-LogDefinition
-LoopDefinition
-MarshalDefinition
-MulticastDefinition
-OnCompletionDefinition
-OnCompletionMode
-OnExceptionDefinition
-OnFallbackDefinition
-OptimisticLockRetryPolicyDefinition
-OptionalIdentifiedDefinition
-OtherwiseDefinition
-OutputTypeDefinition
-PackageScanDefinition
-PipelineDefinition
-PolicyDefinition
-PollEnrichDefinition
-ProcessDefinition
-PropertyDefinition
-RecipientListDefinition
-RedeliveryPolicyDefinition
-RemoveHeaderDefinition
-RemoveHeadersDefinition
-RemovePropertyDefinition
-RemovePropertiesDefinition
-ResequenceDefinition
-RestContextRefDefinition
-RethrowDefinition
-RollbackDefinition
-RouteBuilderDefinition
-RouteDefinition
-RouteContextRefDefinition
-RoutesDefinition
-RoutingSlipDefinition
-SagaCompletionMode
-SagaDefinition
-SagaOptionDefinition
-SagaPropagation
-SamplingDefinition
-ScriptDefinition
-SetBodyDefinition
-SetExchangePatternDefinition
-SetFaultBodyDefinition
-SetHeaderDefinition
-SetPropertyDefinition
-SortDefinition
-SplitDefinition
-StopDefinition
-ThreadPoolProfileDefinition
-ThreadsDefinition
-ThrottleDefinition
-ThrowExceptionDefinition
-ToDefinition
-ToDynamicDefinition
-TransactedDefinition
-TransformDefinition
-TryDefinition
-UnmarshalDefinition
-ValidateDefinition
-WhenDefinition
-WireTapDefinition
diff --git a/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index
deleted file mode 100644
index 23148e5..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index
+++ /dev/null
@@ -1,35 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-ConstantExpression
-ExchangePropertyExpression
-ExpressionDefinition
-GroovyExpression
-HeaderExpression
-JavaScriptExpression
-JsonPathExpression
-LanguageExpression
-MethodCallExpression
-MvelExpression
-OgnlExpression
-RefExpression
-SimpleExpression
-SpELExpression
-TerserExpression
-TokenizerExpression
-XMLTokenizerExpression
-XPathExpression
-XQueryExpression
diff --git a/camel-core/src/main/resources/org/apache/camel/model/loadbalancer/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/loadbalancer/jaxb.index
deleted file mode 100644
index 4134232..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/loadbalancer/jaxb.index
+++ /dev/null
@@ -1,23 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-CustomLoadBalancerDefinition
-FailoverLoadBalancerDefinition
-RandomLoadBalancerDefinition
-RoundRobinLoadBalancerDefinition
-StickyLoadBalancerDefinition
-TopicLoadBalancerDefinition
-WeightedLoadBalancerDefinition
\ No newline at end of file
diff --git a/camel-core/src/main/resources/org/apache/camel/model/rest/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/rest/jaxb.index
deleted file mode 100644
index 063031d..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/rest/jaxb.index
+++ /dev/null
@@ -1,40 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-CollectionFormat
-DeleteVerbDefinition
-GetVerbDefinition
-HeadVerbDefinition
-PostVerbDefinition
-PutVerbDefinition
-PatchVerbDefinition
-RestBindingDefinition
-RestBindingMode
-RestConfigurationDefinition
-RestDefinition
-RestHostNameResolver
-RestOperationParamDefinition
-RestOperationResponseMsgDefinition
-RestOperationResponseHeaderDefinition
-RestParamType
-RestPropertyDefinition
-RestsDefinition
-RestSecurityApiKey
-RestSecurityBasicAuth
-RestSecuritiesDefinition
-RestSecurityOAuth2
-SecurityDefinition
-VerbDefinition
diff --git a/camel-core/src/main/resources/org/apache/camel/model/transformer/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/transformer/jaxb.index
deleted file mode 100644
index 24e0f2b..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/transformer/jaxb.index
+++ /dev/null
@@ -1,21 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-CustomTransformerDefinition
-DataFormatTransformerDefinition
-EndpointTransformerDefinition
-TransformerDefinition
-TransformersDefinition
diff --git a/camel-core/src/main/resources/org/apache/camel/model/validator/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/validator/jaxb.index
deleted file mode 100644
index 7cdaef6..0000000
--- a/camel-core/src/main/resources/org/apache/camel/model/validator/jaxb.index
+++ /dev/null
@@ -1,21 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-CustomValidatorDefinition
-EndpointValidatorDefinition
-PredicateValidatorDefinition
-ValidatorDefinition
-ValidatorsDefinition
diff --git a/camel-core/src/main/resources/org/apache/camel/support/dump/jaxb.index b/camel-core/src/main/resources/org/apache/camel/support/dump/jaxb.index
deleted file mode 100644
index 5738681..0000000
--- a/camel-core/src/main/resources/org/apache/camel/support/dump/jaxb.index
+++ /dev/null
@@ -1,19 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-MessageDump
-ProcessorStatDump
-RouteStatDump
diff --git a/camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index b/camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index
deleted file mode 100644
index 341b476..0000000
--- a/camel-core/src/main/resources/org/apache/camel/util/concurrent/jaxb.index
+++ /dev/null
@@ -1,17 +0,0 @@
-## ------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ------------------------------------------------------------------------
-ThreadPoolRejectedPolicy
diff --git a/parent/pom.xml b/parent/pom.xml
index 3931331..6d8fcca 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -326,6 +326,7 @@
     <jackrabbit-version>2.19.0</jackrabbit-version>
     <jackrabbit-guava-version>15.0</jackrabbit-guava-version>
     <jain-sip-ri-bundle-version>1.2.154_2</jain-sip-ri-bundle-version>
+    <jandex-version>2.1.0.Final</jandex-version>
     <jasn1-version>1.10.0</jasn1-version>
     <jasper-bundle-version>6.0.44_1</jasper-bundle-version>
     <jasypt-bundle-version>1.9.2_1</jasypt-bundle-version>
diff --git a/tooling/maven/camel-package-maven-plugin/pom.xml b/tooling/maven/camel-package-maven-plugin/pom.xml
index b2019a8..4c96f50 100644
--- a/tooling/maven/camel-package-maven-plugin/pom.xml
+++ b/tooling/maven/camel-package-maven-plugin/pom.xml
@@ -143,6 +143,13 @@
       <version>${spring-boot-version}</version>
     </dependency>
 
+    <!-- jandex for annotation processing -->
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jandex</artifactId>
+      <version>${jandex-version}</version>
+    </dependency>
+
     <!-- Freemarker for xml templating -->
     <dependency>
       <groupId>org.freemarker</groupId>
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java
new file mode 100644
index 0000000..9763467
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageJaxbMojo.java
@@ -0,0 +1,199 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.IOError;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Writer;
+import java.net.URI;
+import java.nio.file.FileSystemAlreadyExistsException;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.stream.Stream;
+
+import javax.tools.FileObject;
+import javax.tools.StandardLocation;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationTarget;
+import org.jboss.jandex.ClassInfo;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
+import org.jboss.jandex.Indexer;
+import org.sonatype.plexus.build.incremental.BuildContext;
+
+/**
+ * Analyses the Camel plugins in a project and generates extra descriptor information for easier auto-discovery in Camel.
+ */
+@Mojo(name = "generate-jaxb-list", threadSafe = true, defaultPhase = LifecyclePhase.PROCESS_CLASSES)
+public class PackageJaxbMojo extends AbstractMojo {
+
+    /**
+     * The maven project.
+     */
+    @Parameter(property = "project", required = true, readonly = true)
+    protected MavenProject project;
+
+    /**
+     * The output directory for generated components file
+     */
+    @Parameter(defaultValue = "${project.build.directory}/generated/camel/jaxb")
+    protected File jaxbIndexOutDir;
+
+    /**
+     * Maven ProjectHelper.
+     */
+    @Component
+    private MavenProjectHelper projectHelper;
+
+    /**
+     * build context to check changed files and mark them for refresh (used for
+     * m2e compatibility)
+     */
+    @Component
+    private BuildContext buildContext;
+
+    /**
+     * Execute goal.
+     *
+     * @throws MojoExecutionException execution of the main class or one of the
+     *                 threads it generated failed.
+     * @throws MojoFailureException something bad happened...
+     */
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        List<String> locations = new ArrayList<>();
+        locations.add(project.getBuild().getOutputDirectory());
+        project.getDependencyArtifacts()
+                .stream()
+                .map(Artifact::getFile)
+                .forEach(f -> locations.add(f.toString()));
+
+        processClasses(createIndex(locations));
+
+        projectHelper.addResource(project, jaxbIndexOutDir.getPath(), Collections.singletonList("**/*"), Collections.emptyList());
+    }
+
+    private void processClasses(IndexView index) {
+        Map<String, Set<String>> byPackage = new HashMap<>();
+
+        Stream.of(XmlRootElement.class, XmlEnum.class)
+                .map(Class::getName)
+                .map(DotName::createSimple)
+                .map(index::getAnnotations)
+                .flatMap(Collection::stream)
+                .map(AnnotationInstance::target)
+                .map(AnnotationTarget::asClass)
+                .map(ClassInfo::name)
+                .map(DotName::toString)
+                .forEach(name -> {
+                    int idx = name.lastIndexOf('.');
+                    String p = name.substring(0, idx);
+                    String c = name.substring(idx + 1);
+                    byPackage.computeIfAbsent(p, s -> new TreeSet<>()).add(c);
+                });
+
+        Path jaxbIndexDir = jaxbIndexOutDir.toPath();
+        try {
+            for (Map.Entry<String, Set<String>> entry : byPackage.entrySet()) {
+                Path file = jaxbIndexDir.resolve(entry.getKey().replace('.', '/')).resolve("jaxb.index");
+                Files.createDirectories(file.getParent());
+                try (Writer writer = Files.newBufferedWriter(file, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE)) {
+                    writer.write("# Generated by camel annotation processor\n");
+                    for (String s : entry.getValue()) {
+                        writer.write(s);
+                        writer.write("\n");
+                    }
+                }
+            }
+        } catch (IOException e) {
+            throw new IOError(e);
+        }
+    }
+
+    private IndexView createIndex(List<String> locations) throws MojoExecutionException {
+        try {
+            Indexer indexer = new Indexer();
+            locations.stream()
+                    .map(this::asFolder)
+                    .flatMap(this::walk)
+                    .filter(Files::isRegularFile)
+                    .filter(p -> p.getFileName().toString().endsWith(".class"))
+                    .forEach(p -> index(indexer, p));
+            return indexer.complete();
+        } catch (IOError e) {
+            throw new MojoExecutionException("Error", e);
+        }
+    }
+
+    private Path asFolder(String p) {
+        if (p.endsWith(".jar")) {
+            try {
+                Map<String, String> env = new HashMap<>();
+                return FileSystems.newFileSystem(URI.create("jar:file:" + p + "!/"), env).getPath("/");
+            } catch (FileSystemAlreadyExistsException e) {
+                return FileSystems.getFileSystem(URI.create("jar:file:" + p + "!/")).getPath("/");
+            } catch (IOException e) {
+                throw new IOError(e);
+            }
+        } else {
+            return Paths.get(p);
+        }
+    }
+
+    private Stream<Path> walk(Path p) {
+        try {
+            return Files.walk(p);
+        } catch (IOException e) {
+            throw new IOError(e);
+        }
+    }
+
+    private void index(Indexer indexer, Path p) {
+        try (InputStream is = Files.newInputStream(p)) {
+            indexer.index(is);
+        } catch (IOException e) {
+            throw new IOError(e);
+        }
+    }
+
+}