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

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


The following commit(s) were added to refs/heads/master by this push:
     new b1ad98c  Scripts to sort pom.xml files (#492)
b1ad98c is described below

commit b1ad98c284d87a6c55bb9c4bcc6389508154cb04
Author: Peter Palaga <ppal...@redhat.com>
AuthorDate: Sat Nov 30 17:38:11 2019 +0100

    Scripts to sort pom.xml files (#492)
    
    * Scripts to sort pom.xml files
    
    * Sort POMs using cd extensions && mvn groovy:execute@sort-poms
---
 docs/modules/ROOT/pages/contributor-guide.adoc |   1 +
 extensions/pom.xml                             |  22 +++-
 integration-tests/pom.xml                      |  10 +-
 poms/bom-deployment/pom.xml                    | 105 +++++++--------
 poms/bom/pom.xml                               | 161 +++++++++++-----------
 tooling/scripts/sort-poms.groovy               | 176 +++++++++++++++++++++++++
 6 files changed, 334 insertions(+), 141 deletions(-)

diff --git a/docs/modules/ROOT/pages/contributor-guide.adoc 
b/docs/modules/ROOT/pages/contributor-guide.adoc
index 4b92062..7575f7b 100644
--- a/docs/modules/ROOT/pages/contributor-guide.adoc
+++ b/docs/modules/ROOT/pages/contributor-guide.adoc
@@ -118,6 +118,7 @@ may consider omitting explicit `nameBase` in some cases.
 +
 * Run `mvn license:format -Plicense` to add license headers to the new files.
 * Run `mvn process-resources` to re-generate the list of extensions and the 
Camel Quarkus Catalog
+* Run `cd extensions && mvn groovy:execute@sort-poms` to sort elements in 
various POM files properly
 * Squash your commits
 
 Good luck!
diff --git a/extensions/pom.xml b/extensions/pom.xml
index e2d77e3..f745376 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -44,7 +44,9 @@
 
         <!-- extensions a..z -->
         <module>attachments</module>
+        <module>aws-ecs</module>
         <module>aws-eks</module>
+        <module>aws-kms</module>
         <module>aws-s3</module>
         <module>aws-sns</module>
         <module>aws-sqs</module>
@@ -88,10 +90,8 @@
         <module>twitter</module>
         <module>validator</module>
         <module>vm</module>
-        <module>zipfile</module>
         <module>xslt</module>
-        <module>aws-kms</module>
-        <module>aws-ecs</module>
+        <module>zipfile</module>
     </modules>
 
     <build>
@@ -111,6 +111,22 @@
                             
<source>file:///${project.basedir}/../tooling/scripts/validate-extension-metadata.groovy</source>
                         </configuration>
                     </execution>
+                    <execution>
+                        <!-- Can be called manually using cd extensions && mvn 
groovy:execute@sort-poms -->
+                        <id>sort-poms</id>
+                        <inherited>false</inherited>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <phase>none</phase>
+                        <configuration>
+                            <properties>
+                                
<sortModulesPaths>pom.xml,../integration-tests/pom.xml</sortModulesPaths>
+                                
<sortDependencyManagementPaths>../poms/bom/pom.xml,../poms/bom-deployment/pom.xml</sortDependencyManagementPaths>
+                            </properties>
+                            
<source>file:///${project.basedir}/../tooling/scripts/sort-poms.groovy</source>
+                        </configuration>
+                    </execution>
                 </executions>
                 <dependencies>
                     <dependency>
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index c112de4..3f5a5b2 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -109,9 +109,11 @@
         <module>core-main</module>
         <module>core-impl</module>
 
+        <!-- Sort using cd extensions && mvn groovy:execute@sort-poms -->
         <!-- extensions a..z -->
         <module>aws</module>
         <module>bean</module>
+        <module>bean-validator</module>
         <module>controlbus</module>
         <module>csv</module>
         <module>dataformat</module>
@@ -133,21 +135,19 @@
         <module>opentracing</module>
         <module>paho</module>
         <module>pdf</module>
-        <module>platform-http-engine</module>
         <module>platform-http</module>
+        <module>platform-http-engine</module>
         <module>salesforce</module>
-        <module>servlet</module>
         <module>scheduler</module>
+        <module>servlet</module>
         <module>sjms</module>
         <module>slack</module>
         <module>snakeyaml</module>
         <module>tarfile</module>
         <module>twitter</module>
         <module>validator</module>
-        <module>zipfile</module>
         <module>xslt</module>
-        <module>bean-validator</module>
-
+        <module>zipfile</module>
     </modules>
 
     <build>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index ff19ba4..b2a7aa0 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -60,42 +60,28 @@
                 <scope>import</scope>
             </dependency>
 
-            <!-- Camel Quarkus support deployment modules, in alphabetical 
order -->
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                
<artifactId>camel-quarkus-support-common-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                
<artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-jetty-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
+            <!-- Sort using cd extensions && mvn groovy:execute@sort-poms -->
+            <!-- Dependencies a..z -->
+
+            <!--$ org.apache.camel.quarkus $-->
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                
<artifactId>camel-quarkus-support-xstream-deployment</artifactId>
+                <artifactId>camel-quarkus-attachments-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-xalan-deployment</artifactId>
+                <artifactId>camel-quarkus-aws-ecs-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-xml-deployment</artifactId>
+                <artifactId>camel-quarkus-aws-eks-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-
-            <!-- Camel Quarkus deployment modules, in alphabetical order -->
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-eks-deployment</artifactId>
+                <artifactId>camel-quarkus-aws-kms-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -125,12 +111,12 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-core-cloud-deployment</artifactId>
+                <artifactId>camel-quarkus-controlbus-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-core-xml-deployment</artifactId>
+                <artifactId>camel-quarkus-core-cloud-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -140,7 +126,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-controlbus-deployment</artifactId>
+                <artifactId>camel-quarkus-core-xml-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -170,32 +156,42 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-fhir-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-file-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-infinispan-deployment</artifactId>
+                <artifactId>camel-quarkus-ftp-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-jackson-deployment</artifactId>
+                <artifactId>camel-quarkus-http-common-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-jdbc-deployment</artifactId>
+                <artifactId>camel-quarkus-hystrix-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-http-common-deployment</artifactId>
+                <artifactId>camel-quarkus-infinispan-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-hystrix-deployment</artifactId>
+                <artifactId>camel-quarkus-jackson-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jdbc-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -230,6 +226,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-netty-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-netty-http-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -245,6 +246,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-pdf-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-platform-http-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -265,6 +271,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-scheduler-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-servlet-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -290,32 +301,32 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-timer-deployment</artifactId>
+                
<artifactId>camel-quarkus-support-common-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-twitter-deployment</artifactId>
+                
<artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-validator-deployment</artifactId>
+                <artifactId>camel-quarkus-support-jetty-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-vm-deployment</artifactId>
+                <artifactId>camel-quarkus-support-xalan-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                
<artifactId>camel-quarkus-xstream-common-deployment</artifactId>
+                <artifactId>camel-quarkus-support-xml-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-zipfile-deployment</artifactId>
+                
<artifactId>camel-quarkus-support-xstream-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -325,32 +336,22 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-attachments-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-fhir-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-ftp-deployment</artifactId>
+                <artifactId>camel-quarkus-timer-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-pdf-deployment</artifactId>
+                <artifactId>camel-quarkus-twitter-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-netty-deployment</artifactId>
+                <artifactId>camel-quarkus-validator-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-scheduler-deployment</artifactId>
+                <artifactId>camel-quarkus-vm-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -360,12 +361,12 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-kms-deployment</artifactId>
+                
<artifactId>camel-quarkus-xstream-common-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-ecs-deployment</artifactId>
+                <artifactId>camel-quarkus-zipfile-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
         </dependencies>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 077236f..be3b06e 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -48,7 +48,10 @@
                 <scope>import</scope>
             </dependency>
 
-            <!-- Camel (in alphabetical order) -->
+            <!-- Sort using cd extensions && mvn groovy:execute@sort-poms -->
+            <!-- Dependencies a..z -->
+
+            <!--$ org.apache.camel $-->
             <dependency>
                 <groupId>org.apache.camel</groupId>
                 <artifactId>apt</artifactId>
@@ -116,12 +119,12 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-core</artifactId>
+                <artifactId>camel-controlbus</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-controlbus</artifactId>
+                <artifactId>camel-core</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
@@ -197,17 +200,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-jaxp</artifactId>
+                <artifactId>camel-jackson</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-jdbc</artifactId>
+                <artifactId>camel-jaxp</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-jackson</artifactId>
+                <artifactId>camel-jdbc</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
@@ -264,6 +267,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-netty</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-netty-http</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
@@ -275,11 +283,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-netty</artifactId>
-                <version>${camel.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-opentracing</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -300,12 +303,12 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-rest</artifactId>
+                <artifactId>camel-reactive-executor-vertx</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-reactive-executor-vertx</artifactId>
+                <artifactId>camel-rest</artifactId>
                 <version>${camel.version}</version>
             </dependency>
             <dependency>
@@ -389,99 +392,70 @@
                 <version>${camel.version}</version>
             </dependency>
 
-            <!-- Camel Quarkus Support (in alphabetical order) -->
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-common</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-commons-logging</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-jetty</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-xstream</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
+            <!--$ org.apache.camel.quarkus $-->
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-xalan</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-xml</artifactId>
+                <artifactId>camel-quarkus-attachments</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-
-            <!-- Camel Quarkus Common (in alphabetical order) -->
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-core</artifactId>
+                <artifactId>camel-quarkus-aws-ecs</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-core-cloud</artifactId>
+                <artifactId>camel-quarkus-aws-eks</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-core-xml</artifactId>
+                <artifactId>camel-quarkus-aws-kms</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-http-common</artifactId>
+                <artifactId>camel-quarkus-aws-s3</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-
-            <!-- Quarkus Camel (in alphabetical order) -->
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-attachments</artifactId>
+                <artifactId>camel-quarkus-aws-sns</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-eks</artifactId>
+                <artifactId>camel-quarkus-aws-sqs</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-s3</artifactId>
+                <artifactId>camel-quarkus-bean</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-sqs</artifactId>
+                <artifactId>camel-quarkus-bean-validator</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-sns</artifactId>
+                <artifactId>camel-quarkus-controlbus</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-bean</artifactId>
+                <artifactId>camel-quarkus-core</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-bean-validator</artifactId>
+                <artifactId>camel-quarkus-core-cloud</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-controlbus</artifactId>
+                <artifactId>camel-quarkus-core-xml</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -526,6 +500,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-http-common</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-hystrix</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -556,17 +535,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-microprofile-health</artifactId>
+                <artifactId>camel-quarkus-mail</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-microprofile-metrics</artifactId>
+                <artifactId>camel-quarkus-microprofile-health</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-mail</artifactId>
+                <artifactId>camel-quarkus-microprofile-metrics</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
             <dependency>
@@ -651,6 +630,36 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-common</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-commons-logging</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-jetty</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-xalan</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-xml</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-xstream</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-tarfile</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -685,26 +694,21 @@
                 <version>${camel-quarkus.version}</version>
             </dependency>
 
-            <!-- Other third party dependencies (in alphabetical order by 
groupId:artifactId) -->
+            <!--$ Other third party dependencies $-->
             <dependency>
                 <groupId>ca.uhn.hapi.fhir</groupId>
                 <artifactId>hapi-fhir-server</artifactId>
                 <version>${hapi.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-client</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
                 <groupId>com.thoughtworks.xstream</groupId>
                 <artifactId>xstream</artifactId>
                 <version>${xstream.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.yaml</groupId>
-                <artifactId>snakeyaml</artifactId>
-                <version>${snakeyaml.version}</version>
+                <groupId>org.apache.activemq</groupId>
+                <artifactId>artemis-server</artifactId>
+                <version>${artemis.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.geronimo.specs</groupId>
@@ -712,25 +716,20 @@
                 <version>${geronimo-jms_2.0_spec.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.activemq</groupId>
-                <artifactId>artemis-server</artifactId>
-                <version>${artemis.version}</version>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-client</artifactId>
+                <version>${jetty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.yaml</groupId>
+                <artifactId>snakeyaml</artifactId>
+                <version>${snakeyaml.version}</version>
             </dependency>
             <dependency>
                 <groupId>xalan</groupId>
                 <artifactId>xalan</artifactId>
                 <version>${xalan.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-kms</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-aws-ecs</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
 
diff --git a/tooling/scripts/sort-poms.groovy b/tooling/scripts/sort-poms.groovy
new file mode 100644
index 0000000..bb35016
--- /dev/null
+++ b/tooling/scripts/sort-poms.groovy
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+
+import java.nio.file.Path
+import java.nio.file.Paths
+import java.nio.file.Files
+import java.util.regex.Matcher
+import java.util.regex.Pattern
+
+@groovy.transform.Field
+final Path baseDir = basedir.toPath()
+
+final String[] sortDepManagementPaths = 
properties['sortDependencyManagementPaths'].split(',')
+sortDependencyManagement(sortDepManagementPaths)
+
+final String[] sortModulesPaths = properties['sortModulesPaths'].split(',')
+sortModules(sortModulesPaths)
+
+void sortDependencyManagement(String[] pomPaths) {
+    for (pomPath in pomPaths) {
+        final Path pomXmlPath = baseDir.resolve(pomPath.trim())
+        final String xmlSource = new String(Files.readAllBytes(pomXmlPath), 
'UTF-8')
+
+        final Pattern sortSpanPattern = 
Pattern.compile('(a\\.\\.z[^>]*>)(.*)</dependencies>(\\r?\\n)([ 
]*)</dependencyManagement>', Pattern.DOTALL)
+        final Pattern groupIdPattern = 
Pattern.compile('<groupId>([^<]+)</groupId>')
+
+        final Matcher matcher = sortSpanPattern.matcher(xmlSource)
+        if (matcher.find()) {
+            String dependenciesString = matcher.group(2)
+            final String eol = matcher.group(3)
+            final String indent = matcher.group(4)
+
+            dependenciesString = 
dependenciesString.replaceAll('<!--\\$[^>]*\\$-->', '')
+            final String[] dependenciesArray = 
dependenciesString.split('</dependency>')
+            /* Sort by adding to a TreeMap */
+            final Map<String, Map<String, String>> sortedDeps = new 
TreeMap<>();
+            for (dep in dependenciesArray) {
+                dep = dep.trim()
+                if (!dep.isEmpty()) {
+                    String key = dep
+                            .replaceAll('>[ \n\r\t]+', '>')
+                            .replaceAll('[ \n\r\t]+<', '<')
+                    final Matcher gMatcher = groupIdPattern.matcher(key)
+                    gMatcher.find()
+                    final String groupId = gMatcher.group(1)
+                    key = key.replaceAll('<[^>]+>', ' ').replaceAll(' +', ' ')
+
+                    Map<String, String> groupMap = sortedDeps.get(groupId)
+                    if (groupMap == null) {
+                        groupMap = new TreeMap<String, String>()
+                        sortedDeps.put(groupId, groupMap)
+                    }
+                    groupMap.put(key, dep);
+                }
+            }
+            final StringBuilder result = new StringBuilder(xmlSource)
+            result.setLength(matcher.end(1))
+
+            final Appender appender = new Appender(eol, indent, sortedDeps, 
result)
+
+            appender.appendGroup('org.apache.camel', true)
+            appender.appendGroup('org.apache.camel.quarkus', true)
+
+            appender.appendOther()
+            
appender.result().append(eol).append(indent).append(indent).append(xmlSource.substring(matcher.end(2)))
+
+            Files.write(pomXmlPath, result.toString().getBytes('UTF-8'));
+        } else {
+            throw new RuntimeException('Could not match ' + sortSpanPattern + 
' in ' + pomXmlPath)
+        }
+    }
+}
+
+class Appender {
+    private final Set<String> processedGroupIds = new HashSet<>()
+    private final String eol
+    private final String indent
+    private final Map<String, Map<String, String>> sortedDeps
+    private final StringBuilder result
+
+    public Appender(String eol, String indent, Map<String, Map<String, 
String>> sortedDeps, StringBuilder result) {
+        this.eol = eol
+        this.indent = indent
+        this.sortedDeps = sortedDeps
+        this.result = result
+    }
+
+    public void comment(String comment) {
+        result.append(eol).append(eol)
+                .append(indent).append(indent).append(indent).append('<!--$ '+ 
comment +' $-->')
+    }
+
+    public void appendGroup(String groupId, boolean isComment) {
+        final Map<String, String> deps = sortedDeps.get(groupId)
+        if (deps == null || processedGroupIds.contains(groupId)) {
+            return
+        }
+        processedGroupIds.add(groupId)
+        if (isComment) {
+            comment(groupId)
+        }
+        for (dep in deps.values()) {
+            result.append(eol)
+                    .append(indent).append(indent).append(indent).append(dep)
+                    
.append(eol).append(indent).append(indent).append(indent).append('</dependency>')
+        }
+    }
+
+    public void appendOther() {
+        if (processedGroupIds.size() < sortedDeps.size()) {
+            comment('Other third party dependencies')
+            for (group in sortedDeps.entrySet()) {
+                appendGroup(group.getKey(), false)
+            }
+        }
+    }
+
+    public StringBuilder result() {
+        return result
+    }
+}
+
+void sortModules(String[] sortModulesPaths) {
+    for (pomPath in sortModulesPaths) {
+        final Path pomXmlPath = basedir.toPath().resolve(pomPath.trim())
+        final String xmlSource = new String(Files.readAllBytes(pomXmlPath), 
'UTF-8')
+
+        final Pattern sortSpanPattern = 
Pattern.compile('(a\\.\\.z[^>]*>)(.*)(\\r?\\n)([ ]*)</modules>', Pattern.DOTALL)
+
+        final Matcher matcher = sortSpanPattern.matcher(xmlSource)
+        if (matcher.find()) {
+            final String modulesString = matcher.group(2)
+            final String eol = matcher.group(3)
+            final String indent = matcher.group(4)
+            final String[] modulesArray = modulesString.split('[\r\n]+ *')
+            final Map<String, String> sortedModules = new TreeMap<String, 
String>()
+            for (module in modulesArray) {
+                module = module.trim()
+                if (!module.isEmpty()) {
+                    String key = module
+                            .replaceAll('>[ \n\r\t]+', '>')
+                            .replaceAll('[ \n\r\t]+<', '<')
+                    key = key.replaceAll('<[^>]+>', '')
+                    if (!key.isEmpty()) {
+                        sortedModules.put(key, module);
+                    }
+                }
+            }
+
+            final StringBuilder result = new StringBuilder(xmlSource)
+            result.setLength(matcher.end(1))
+            for (module in sortedModules.values()) {
+                result.append(eol).append(indent).append(indent).append(module)
+            }
+            
result.append(eol).append(indent).append(xmlSource.substring(matcher.end(4)))
+
+            Files.write(pomXmlPath, result.toString().getBytes('UTF-8'));
+        } else {
+            throw new RuntimeException('Could not match ' + sortSpanPattern + 
' in ' + pomXmlPath)
+        }
+    }
+}

Reply via email to