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