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);
+ }
+ }
+
+}