commit maven for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package maven for openSUSE:Factory checked in at 2022-08-02 22:08:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maven (Old) and /work/SRC/openSUSE:Factory/.maven.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "maven" Tue Aug 2 22:08:41 2022 rev:13 rq:991028 version:3.8.6 Changes: -------- --- /work/SRC/openSUSE:Factory/maven/maven.changes 2022-05-17 17:24:33.603177867 +0200 +++ /work/SRC/openSUSE:Factory/.maven.new.1533/maven.changes 2022-08-02 22:08:50.773712696 +0200 @@ -1,0 +2,36 @@ +Mon Jul 25 12:13:39 UTC 2022 - Fridrich Strba <fstrba@suse.com> + +- Upgrade to upstream version 3.8.6 + * Bug + + [MNG-7432] - [REGRESSION] Resolver session contains + non-MavenWorkspaceReader + + [MNG-7433] - [REGRESSION] Multiple maven instances working on + same source tree can lock each other + + [MNG-7441] - Update Version of (optional) Logback to Address + CVE-2021-42550, bsc#1193795 + + [MNG-7448] - Don't ignore bin/ otherwise bin/ in apache-maven + module cannot be readded + + [MNG-7455] - [REGRESSION] IllegalStateException in + SessionScope during guice injection in multithreaded build + + [MNG-7459] - Revert MNG-7347 (SessionScoped beans should be + singletons for a given session) + + [MNG-7467] - [REGRESSION] Compilation failure with relocated + transitive dependency + + [MNG-7487] - Fix deadlock during forked lifecycle executions + + [MNG-7493] - [REGRESSION] Resolving dependencies between + submodules fails + * New Feature + + [MNG-7486] - Create a multiline message helper for boxed log + messages + * Improvement + + [MNG-7445] - to refactor some useless code + + [MNG-7476] - Display a warning when an aggregator mojo is + locking other mojo executions + * Task + + [MNG-7466] - Align Assembly Descriptor NS versions + * Dependency upgrade + + [MNG-7488] - Upgrade SLF4J to 1.7.36 + + [MNG-7489] - Upgrade JUnit to 4.13.2 + + [MNG-7490] - Upgrade Plexus Utils to 3.3.1 + +------------------------------------------------------------------- Old: ---- apache-maven-3.8.5-build.tar.xz apache-maven-3.8.5-src.tar.gz New: ---- apache-maven-3.8.6-build.tar.xz apache-maven-3.8.6-src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maven.spec ++++++ --- /var/tmp/diff_new_pack.ysnQWK/_old 2022-08-02 22:08:51.421714563 +0200 +++ /var/tmp/diff_new_pack.ysnQWK/_new 2022-08-02 22:08:51.425714575 +0200 @@ -20,7 +20,7 @@ %global homedir %{_datadir}/%{name}%{?maven_version_suffix} %global confdir %{_sysconfdir}/%{name}%{?maven_version_suffix} Name: maven -Version: 3.8.5 +Version: 3.8.6 Release: 0 Summary: Java project management and project comprehension tool # maven itself is ASL 2.0 ++++++ apache-maven-3.8.5-build.tar.xz -> apache-maven-3.8.6-build.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/common.xml new/common.xml --- old/common.xml 2022-05-13 18:30:54.388182459 +0200 +++ new/common.xml 2022-07-25 14:07:31.984875252 +0200 @@ -3,7 +3,7 @@ <project name="common" basedir="."> <property file="build.properties"/> - <property name="project.version" value="3.8.5"/> + <property name="project.version" value="3.8.6"/> <property name="project.groupId" value="org.apache.maven"/> <property name="project.organization.name" value="The Apache Software Foundation"/> ++++++ apache-maven-3.8.5-src.tar.gz -> apache-maven-3.8.6-src.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/DEPENDENCIES new/apache-maven-3.8.6/DEPENDENCIES --- old/apache-maven-3.8.5/DEPENDENCIES 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/DEPENDENCIES 2022-06-06 18:16:38.000000000 +0200 @@ -19,7 +19,7 @@ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) - Plexus Interpolation API (http://codehaus-plexus.github.io/plexus-interpolation/) org.codehaus.plexus:plexus-interpolation:bundle:1.26 License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) - - Plexus Common Utilities (http://codehaus-plexus.github.io/plexus-utils/) org.codehaus.plexus:plexus-utils:jar:3.3.0 + - Plexus Common Utilities (http://codehaus-plexus.github.io/plexus-utils/) org.codehaus.plexus:plexus-utils:jar:3.3.1 License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) From: 'Codehaus Plexus' (https://codehaus-plexus.github.io/) @@ -41,9 +41,9 @@ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) From: 'QOS.ch' (http://www.qos.ch) - - JCL 1.2 implemented over SLF4J (http://www.slf4j.org) org.slf4j:jcl-over-slf4j:jar:1.7.32 + - JCL 1.2 implemented over SLF4J (http://www.slf4j.org) org.slf4j:jcl-over-slf4j:jar:1.7.36 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.32 + - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.36 License: MIT License (http://www.opensource.org/licenses/mit-license.php) From: 'The Apache Software Foundation' (https://www.apache.org/) @@ -53,31 +53,31 @@ License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - Apache Commons Lang (http://commons.apache.org/proper/commons-lang/) org.apache.commons:commons-lang3:jar:3.8.1 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Artifact (https://maven.apache.org/ref/3.8.5/maven-artifact/) org.apache.maven:maven-artifact:jar:3.8.5 + - Maven Artifact (https://maven.apache.org/ref/3.8.6/maven-artifact/) org.apache.maven:maven-artifact:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Builder Support (https://maven.apache.org/ref/3.8.5/maven-builder-support/) org.apache.maven:maven-builder-support:jar:3.8.5 + - Maven Builder Support (https://maven.apache.org/ref/3.8.6/maven-builder-support/) org.apache.maven:maven-builder-support:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Compat (https://maven.apache.org/ref/3.8.5/maven-compat/) org.apache.maven:maven-compat:jar:3.8.5 + - Maven Compat (https://maven.apache.org/ref/3.8.6/maven-compat/) org.apache.maven:maven-compat:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Core (https://maven.apache.org/ref/3.8.5/maven-core/) org.apache.maven:maven-core:jar:3.8.5 + - Maven Core (https://maven.apache.org/ref/3.8.6/maven-core/) org.apache.maven:maven-core:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Embedder (https://maven.apache.org/ref/3.8.5/maven-embedder/) org.apache.maven:maven-embedder:jar:3.8.5 + - Maven Embedder (https://maven.apache.org/ref/3.8.6/maven-embedder/) org.apache.maven:maven-embedder:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Model (https://maven.apache.org/ref/3.8.5/maven-model/) org.apache.maven:maven-model:jar:3.8.5 + - Maven Model (https://maven.apache.org/ref/3.8.6/maven-model/) org.apache.maven:maven-model:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Model Builder (https://maven.apache.org/ref/3.8.5/maven-model-builder/) org.apache.maven:maven-model-builder:jar:3.8.5 + - Maven Model Builder (https://maven.apache.org/ref/3.8.6/maven-model-builder/) org.apache.maven:maven-model-builder:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Plugin API (https://maven.apache.org/ref/3.8.5/maven-plugin-api/) org.apache.maven:maven-plugin-api:jar:3.8.5 + - Maven Plugin API (https://maven.apache.org/ref/3.8.6/maven-plugin-api/) org.apache.maven:maven-plugin-api:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Repository Metadata Model (https://maven.apache.org/ref/3.8.5/maven-repository-metadata/) org.apache.maven:maven-repository-metadata:jar:3.8.5 + - Maven Repository Metadata Model (https://maven.apache.org/ref/3.8.6/maven-repository-metadata/) org.apache.maven:maven-repository-metadata:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Artifact Resolver Provider (https://maven.apache.org/ref/3.8.5/maven-resolver-provider/) org.apache.maven:maven-resolver-provider:jar:3.8.5 + - Maven Artifact Resolver Provider (https://maven.apache.org/ref/3.8.6/maven-resolver-provider/) org.apache.maven:maven-resolver-provider:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Settings (https://maven.apache.org/ref/3.8.5/maven-settings/) org.apache.maven:maven-settings:jar:3.8.5 + - Maven Settings (https://maven.apache.org/ref/3.8.6/maven-settings/) org.apache.maven:maven-settings:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven Settings Builder (https://maven.apache.org/ref/3.8.5/maven-settings-builder/) org.apache.maven:maven-settings-builder:jar:3.8.5 + - Maven Settings Builder (https://maven.apache.org/ref/3.8.6/maven-settings-builder/) org.apache.maven:maven-settings-builder:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - - Maven SLF4J Simple Provider (https://maven.apache.org/ref/3.8.5/maven-slf4j-provider/) org.apache.maven:maven-slf4j-provider:jar:3.8.5 + - Maven SLF4J Simple Provider (https://maven.apache.org/ref/3.8.6/maven-slf4j-provider/) org.apache.maven:maven-slf4j-provider:jar:3.8.6 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) - Maven Artifact Resolver API (https://maven.apache.org/resolver/maven-resolver-api/) org.apache.maven.resolver:maven-resolver-api:jar:1.6.3 License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/Jenkinsfile new/apache-maven-3.8.6/Jenkinsfile --- old/apache-maven-3.8.5/Jenkinsfile 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/Jenkinsfile 2022-06-06 18:16:38.000000000 +0200 @@ -41,7 +41,7 @@ def MAVEN_GOAL='verify' stage('Configure deploy') { - if (env.BRANCH_NAME == 'master'){ + if (env.BRANCH_NAME in ['master', 'maven-3.8.x', 'maven-3.9.x']){ MAVEN_GOAL='deploy' } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/pom.xml new/apache-maven-3.8.6/apache-maven/pom.xml --- old/apache-maven-3.8.5/apache-maven/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>apache-maven</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt --- old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -https://raw.githubusercontent.com/qos-ch/slf4j/v_1.7.32/LICENSE.txt - -Copyright (c) 2004-2017 QOS.ch -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt --- old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt 2022-06-06 18:16:38.000000000 +0200 @@ -0,0 +1,23 @@ +https://raw.githubusercontent.com/qos-ch/slf4j/v_1.7.32/LICENSE.txt + +Copyright (c) 2004-2017 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/assembly/bin.xml new/apache-maven-3.8.6/apache-maven/src/main/assembly/bin.xml --- old/apache-maven-3.8.5/apache-maven/src/main/assembly/bin.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/bin.xml 2022-06-06 18:16:38.000000000 +0200 @@ -17,8 +17,8 @@ under the License. --> -<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"> +<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd"> <id>bin</id> <formats> <format>zip</format> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/assembly/component.xml new/apache-maven-3.8.6/apache-maven/src/main/assembly/component.xml --- old/apache-maven-3.8.5/apache-maven/src/main/assembly/component.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/component.xml 2022-06-06 18:16:38.000000000 +0200 @@ -16,8 +16,8 @@ specific language governing permissions and limitations under the License. --> -<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.0.0 http://maven.apache.org/xsd/assembly-component-2.0.0.xsd"> +<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0 http://maven.apache.org/xsd/assembly-component-2.1.0.xsd"> <dependencySets> <dependencySet> <useProjectArtifact>false</useProjectArtifact> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/assembly/dir.xml new/apache-maven-3.8.6/apache-maven/src/main/assembly/dir.xml --- old/apache-maven-3.8.5/apache-maven/src/main/assembly/dir.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/dir.xml 2022-06-06 18:16:38.000000000 +0200 @@ -17,8 +17,8 @@ under the License. --> -<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"> +<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd"> <id>dir</id> <formats> <format>dir</format> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/src/main/assembly/src.xml new/apache-maven-3.8.6/apache-maven/src/main/assembly/src.xml --- old/apache-maven-3.8.5/apache-maven/src/main/assembly/src.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/src.xml 2022-06-06 18:16:38.000000000 +0200 @@ -17,8 +17,8 @@ under the License. --> -<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"> +<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd"> <id>src</id> <formats> <format>zip</format> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/doap_Maven.rdf new/apache-maven-3.8.6/doap_Maven.rdf --- old/apache-maven-3.8.5/doap_Maven.rdf 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/doap_Maven.rdf 2022-06-06 18:16:38.000000000 +0200 @@ -33,6 +33,15 @@ <release> <Version> <name>Latest stable release</name> + <created>2022-03-05</created> + <revision>3.8.5</revision> + <file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.zip</file-release> + <file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz</file-release> + <file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/source/apache-maven-3.8.5-src.zip</file-release> + <file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/source/apache-maven-3.8.5-src.tar.gz</file-release> + </Version> + <Version> + <name>Apache Maven 3.8.4</name> <created>2021-11-14</created> <revision>3.8.4</revision> <file-release>http://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.zip</file-release> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-artifact/pom.xml new/apache-maven-3.8.6/maven-artifact/pom.xml --- old/apache-maven-3.8.5/maven-artifact/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-artifact/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-artifact</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-builder-support/pom.xml new/apache-maven-3.8.6/maven-builder-support/pom.xml --- old/apache-maven-3.8.5/maven-builder-support/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-builder-support/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-builder-support</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-compat/pom.xml new/apache-maven-3.8.6/maven-compat/pom.xml --- old/apache-maven-3.8.5/maven-compat/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-compat/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-compat</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/pom.xml new/apache-maven-3.8.6/maven-core/pom.xml --- old/apache-maven-3.8.5/maven-core/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-core</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/DefaultMaven.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/DefaultMaven.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/DefaultMaven.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/DefaultMaven.java 2022-06-06 18:16:38.000000000 +0200 @@ -40,6 +40,7 @@ import org.apache.maven.execution.ProjectDependencyGraph; import org.apache.maven.graph.GraphBuilder; import org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory; +import org.apache.maven.internal.aether.MavenChainedWorkspaceReader; import org.apache.maven.lifecycle.internal.ExecutionEventCatapult; import org.apache.maven.lifecycle.internal.LifecycleStarter; import org.apache.maven.model.Prerequisites; @@ -58,7 +59,6 @@ import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.repository.WorkspaceReader; -import org.eclipse.aether.util.repository.ChainedWorkspaceReader; /** * @author Jason van Zyl @@ -338,9 +338,7 @@ } workspaceReaders.add( workspaceReader ); } - WorkspaceReader[] readers = workspaceReaders.toArray( new WorkspaceReader[0] ); - repoSession.setWorkspaceReader( new ChainedWorkspaceReader( readers ) ); - + repoSession.setWorkspaceReader( MavenChainedWorkspaceReader.of( workspaceReaders ) ); } private void afterSessionEnd( Collection<MavenProject> projects, MavenSession session ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java 1970-01-01 01:00:00.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java 2022-06-06 18:16:38.000000000 +0200 @@ -0,0 +1,91 @@ +package org.apache.maven.internal; + +/* + * 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.util.ArrayList; +import java.util.List; + +/** + * Helper class to format multiline messages to the console + */ +public class MultilineMessageHelper +{ + + private static final int DEFAULT_MAX_SIZE = 65; + private static final char BOX_CHAR = '*'; + + public static String separatorLine() + { + StringBuilder sb = new StringBuilder( DEFAULT_MAX_SIZE ); + repeat( sb, '*', DEFAULT_MAX_SIZE ); + return sb.toString(); + } + + public static List<String> format( String... lines ) + { + int size = DEFAULT_MAX_SIZE; + int remainder = size - 4; // 4 chars = 2 box_char + 2 spaces + List<String> result = new ArrayList<>(); + StringBuilder sb = new StringBuilder( size ); + // first line + sb.setLength( 0 ); + repeat( sb, BOX_CHAR, size ); + result.add( sb.toString() ); + // lines + for ( String line : lines ) + { + sb.setLength( 0 ); + String[] words = line.split( "\\s+" ); + for ( String word : words ) + { + if ( sb.length() >= remainder - word.length() - ( sb.length() > 0 ? 1 : 0 ) ) + { + repeat( sb, ' ', remainder - sb.length() ); + result.add( BOX_CHAR + " " + sb + " " + BOX_CHAR ); + sb.setLength( 0 ); + } + if ( sb.length() > 0 ) + { + sb.append( ' ' ); + } + sb.append( word ); + } + + while ( sb.length() < remainder ) + { + sb.append( ' ' ); + } + result.add( BOX_CHAR + " " + sb + " " + BOX_CHAR ); + } + // last line + sb.setLength( 0 ); + repeat( sb, BOX_CHAR, size ); + result.add( sb.toString() ); + return result; + } + + private static void repeat( StringBuilder sb, char c, int nb ) + { + for ( int i = 0; i < nb; i++ ) + { + sb.append( c ); + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java 1970-01-01 01:00:00.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java 2022-06-06 18:16:38.000000000 +0200 @@ -0,0 +1,106 @@ +package org.apache.maven.internal.aether; + +/* + * 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.io.File; +import java.util.Collection; +import java.util.List; + +import org.apache.maven.model.Model; +import org.apache.maven.repository.internal.MavenWorkspaceReader; +import org.eclipse.aether.artifact.Artifact; +import org.eclipse.aether.repository.WorkspaceReader; +import org.eclipse.aether.repository.WorkspaceRepository; +import org.eclipse.aether.util.repository.ChainedWorkspaceReader; + +/** + * A maven workspace reader that delegates to a chain of other readers, effectively aggregating their contents. + */ +public final class MavenChainedWorkspaceReader + implements MavenWorkspaceReader +{ + + private ChainedWorkspaceReader delegate; + + private WorkspaceReader[] readers; + + /** + * Creates a new workspace reader by chaining the specified readers. + * + * @param readers The readers to chain must not be {@code null}. + */ + private MavenChainedWorkspaceReader( WorkspaceReader... readers ) + { + this.delegate = new ChainedWorkspaceReader( readers ); + this.readers = readers; + } + + @Override + public Model findModel( Artifact artifact ) + { + for ( WorkspaceReader workspaceReader : readers ) + { + if ( workspaceReader instanceof MavenWorkspaceReader ) + { + Model model = ( (MavenWorkspaceReader) workspaceReader ).findModel( artifact ); + if ( model != null ) + { + return model; + } + } + } + return null; + } + + @Override + public WorkspaceRepository getRepository() + { + return delegate.getRepository(); + } + + @Override + public File findArtifact( Artifact artifact ) + { + return delegate.findArtifact( artifact ); + } + + @Override + public List<String> findVersions( Artifact artifact ) + { + return delegate.findVersions( artifact ); + } + + /** + * chains a collection of {@link WorkspaceReader}s + * @param workspaceReaderCollection the collection of readers, might be empty but never <code>null</code> + * @return if the collection contains only one item returns the single item, otherwise creates a new + * {@link MavenChainedWorkspaceReader} chaining all readers in the order of the given collection. + */ + public static WorkspaceReader of( Collection<WorkspaceReader> workspaceReaderCollection ) + { + WorkspaceReader[] readers = workspaceReaderCollection.toArray( new WorkspaceReader[0] ); + if ( readers.length == 1 ) + { + return readers[0]; + } + return new MavenChainedWorkspaceReader( readers ); + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java 2022-06-06 18:16:38.000000000 +0200 @@ -90,12 +90,8 @@ // session may be different from rootSession seeded in DefaultMaven // explicitly seed the right session here to make sure it is used by Guice - final boolean scoped = session != rootSession; - if ( scoped ) - { - sessionScope.enter(); - sessionScope.seed( MavenSession.class, session ); - } + sessionScope.enter( reactorContext.getSessionScopeMemento() ); + sessionScope.seed( MavenSession.class, session ); try { @@ -149,10 +145,7 @@ } finally { - if ( scoped ) - { - sessionScope.exit(); - } + sessionScope.exit(); session.setCurrentProject( null ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java 2022-06-06 18:16:38.000000000 +0200 @@ -107,7 +107,8 @@ ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader(); ReactorBuildStatus reactorBuildStatus = new ReactorBuildStatus( session.getProjectDependencyGraph() ); reactorContext = - new ReactorContext( result, projectIndex, oldContextClassLoader, reactorBuildStatus ); + new ReactorContext( result, projectIndex, oldContextClassLoader, reactorBuildStatus, + sessionScope.memento() ); String builderId = session.getRequest().getBuilderId(); Builder builder = builders.get( builderId ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java 2022-06-06 18:16:38.000000000 +0200 @@ -24,6 +24,7 @@ import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter; import org.apache.maven.execution.ExecutionEvent; import org.apache.maven.execution.MavenSession; +import org.apache.maven.internal.MultilineMessageHelper; import org.apache.maven.lifecycle.LifecycleExecutionException; import org.apache.maven.lifecycle.MissingProjectException; import org.apache.maven.plugin.BuildPluginManager; @@ -40,6 +41,8 @@ import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.util.StringUtils; import org.eclipse.aether.SessionData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; @@ -52,7 +55,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -71,6 +73,8 @@ public class MojoExecutor { + private static final Logger LOGGER = LoggerFactory.getLogger( MojoExecutor.class ); + @Requirement private BuildPluginManager pluginManager; @@ -83,7 +87,9 @@ @Requirement private ExecutionEventCatapult eventCatapult; - private final ReadWriteLock aggregatorLock = new ReentrantReadWriteLock(); + private final OwnerReentrantReadWriteLock aggregatorLock = new OwnerReentrantReadWriteLock(); + + private final Map<Thread, MojoDescriptor> mojos = new ConcurrentHashMap<>(); public MojoExecutor() { @@ -206,10 +212,7 @@ } } - try ( ProjectLock lock = new ProjectLock( session, mojoDescriptor, aggregatorLock ) ) - { - doExecute( session, mojoExecution, projectIndex, dependencyContext ); - } + doExecute( session, mojoExecution, projectIndex, dependencyContext ); } /** @@ -220,20 +223,44 @@ * TODO: ideally, the builder should take care of the ordering in a smarter way * TODO: and concurrency issues fixed with MNG-7157 */ - private static class ProjectLock implements AutoCloseable + private class ProjectLock implements AutoCloseable { final Lock acquiredAggregatorLock; - final Lock acquiredProjectLock; + final OwnerReentrantLock acquiredProjectLock; - ProjectLock( MavenSession session, MojoDescriptor mojoDescriptor, ReadWriteLock aggregatorLock ) + ProjectLock( MavenSession session, MojoDescriptor mojoDescriptor ) { + mojos.put( Thread.currentThread(), mojoDescriptor ); if ( session.getRequest().getDegreeOfConcurrency() > 1 ) { boolean aggregator = mojoDescriptor.isAggregator(); acquiredAggregatorLock = aggregator ? aggregatorLock.writeLock() : aggregatorLock.readLock(); acquiredProjectLock = getProjectLock( session ); - acquiredAggregatorLock.lock(); - acquiredProjectLock.lock(); + if ( !acquiredAggregatorLock.tryLock() ) + { + Thread owner = aggregatorLock.getOwner(); + MojoDescriptor ownerMojo = owner != null ? mojos.get( owner ) : null; + String str = ownerMojo != null ? " The " + ownerMojo.getId() : "An"; + String msg = str + " aggregator mojo is already being executed " + + "in this parallel build, those kind of mojos require exclusive access to " + + "reactor to prevent race conditions. This mojo execution will be blocked " + + "until the aggregator mojo is done."; + warn( msg ); + acquiredAggregatorLock.lock(); + } + if ( !acquiredProjectLock.tryLock() ) + { + Thread owner = acquiredProjectLock.getOwner(); + MojoDescriptor ownerMojo = owner != null ? mojos.get( owner ) : null; + String str = ownerMojo != null ? " The " + ownerMojo.getId() : "A"; + String msg = str + " mojo is already being executed " + + "on the project " + session.getCurrentProject().getGroupId() + + ":" + session.getCurrentProject().getArtifactId() + ". " + + "This mojo execution will be blocked " + + "until the mojo is done."; + warn( msg ); + acquiredProjectLock.lock(); + } } else { @@ -254,13 +281,14 @@ { acquiredAggregatorLock.unlock(); } + mojos.remove( Thread.currentThread() ); } @SuppressWarnings( { "unchecked", "rawtypes" } ) - private Lock getProjectLock( MavenSession session ) + private OwnerReentrantLock getProjectLock( MavenSession session ) { SessionData data = session.getRepositorySession().getData(); - ConcurrentMap<MavenProject, Lock> locks = ( ConcurrentMap ) data.get( ProjectLock.class ); + ConcurrentMap<MavenProject, OwnerReentrantLock> locks = ( ConcurrentMap ) data.get( ProjectLock.class ); // initialize the value if not already done (in case of a concurrent access) to the method if ( locks == null ) { @@ -268,11 +296,11 @@ data.set( ProjectLock.class, null, new ConcurrentHashMap<>() ); locks = ( ConcurrentMap ) data.get( ProjectLock.class ); } - Lock acquiredProjectLock = locks.get( session.getCurrentProject() ); + OwnerReentrantLock acquiredProjectLock = locks.get( session.getCurrentProject() ); if ( acquiredProjectLock == null ) { - acquiredProjectLock = new ReentrantLock(); - Lock prev = locks.putIfAbsent( session.getCurrentProject(), acquiredProjectLock ); + acquiredProjectLock = new OwnerReentrantLock(); + OwnerReentrantLock prev = locks.putIfAbsent( session.getCurrentProject(), acquiredProjectLock ); if ( prev != null ) { acquiredProjectLock = prev; @@ -282,6 +310,32 @@ } } + static class OwnerReentrantLock extends ReentrantLock + { + @Override + public Thread getOwner() + { + return super.getOwner(); + } + } + + static class OwnerReentrantReadWriteLock extends ReentrantReadWriteLock + { + @Override + public Thread getOwner() + { + return super.getOwner(); + } + } + + private static void warn( String msg ) + { + for ( String s : MultilineMessageHelper.format( msg ) ) + { + LOGGER.warn( s ); + } + } + private void doExecute( MavenSession session, MojoExecution mojoExecution, ProjectIndex projectIndex, DependencyContext dependencyContext ) throws LifecycleExecutionException @@ -292,8 +346,23 @@ ensureDependenciesAreResolved( mojoDescriptor, session, dependencyContext ); - eventCatapult.fire( ExecutionEvent.Type.MojoStarted, session, mojoExecution ); + try ( ProjectLock lock = new ProjectLock( session, mojoDescriptor ) ) + { + doExecute2( session, mojoExecution ); + } + finally + { + for ( MavenProject forkedProject : forkedProjects ) + { + forkedProject.setExecutionProject( null ); + } + } + } + private void doExecute2( MavenSession session, MojoExecution mojoExecution ) + throws LifecycleExecutionException + { + eventCatapult.fire( ExecutionEvent.Type.MojoStarted, session, mojoExecution ); try { try @@ -314,13 +383,6 @@ throw e; } - finally - { - for ( MavenProject forkedProject : forkedProjects ) - { - forkedProject.setExecutionProject( null ); - } - } } public void ensureDependenciesAreResolved( MojoDescriptor mojoDescriptor, MavenSession session, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java 2022-06-06 18:16:38.000000000 +0200 @@ -20,6 +20,7 @@ */ import org.apache.maven.execution.MavenExecutionResult; +import org.apache.maven.session.scope.internal.SessionScope; /** * Context that is fixed for the entire reactor build. @@ -39,13 +40,17 @@ private final ReactorBuildStatus reactorBuildStatus; + private final SessionScope.Memento sessionScope; + public ReactorContext( MavenExecutionResult result, ProjectIndex projectIndex, - ClassLoader originalContextClassLoader, ReactorBuildStatus reactorBuildStatus ) + ClassLoader originalContextClassLoader, ReactorBuildStatus reactorBuildStatus, + SessionScope.Memento sessionScope ) { this.result = result; this.projectIndex = projectIndex; this.originalContextClassLoader = originalContextClassLoader; this.reactorBuildStatus = reactorBuildStatus; + this.sessionScope = sessionScope; } public ReactorBuildStatus getReactorBuildStatus() @@ -68,4 +73,11 @@ return originalContextClassLoader; } + /** + * @since 3.3.0 + */ + public SessionScope.Memento getSessionScopeMemento() + { + return sessionScope; + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java 2022-06-06 18:16:38.000000000 +0200 @@ -24,6 +24,7 @@ import org.apache.maven.execution.ExecutionEvent; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenSession; +import org.apache.maven.internal.MultilineMessageHelper; import org.apache.maven.lifecycle.LifecycleExecutionException; import org.apache.maven.lifecycle.LifecycleNotFoundException; import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException; @@ -103,34 +104,35 @@ final Set<Plugin> unsafePlugins = executionPlan.getNonThreadSafePlugins(); if ( !unsafePlugins.isEmpty() ) { - logger.warn( "*****************************************************************" ); - logger.warn( "* Your build is requesting parallel execution, but project *" ); - logger.warn( "* contains the following plugin(s) that have goals not marked *" ); - logger.warn( "* as @threadSafe to support parallel building. *" ); - logger.warn( "* While this /may/ work fine, please look for plugin updates *" ); - logger.warn( "* and/or request plugins be made thread-safe. *" ); - logger.warn( "* If reporting an issue, report it against the plugin in *" ); - logger.warn( "* question, not against maven-core *" ); - logger.warn( "*****************************************************************" ); + for ( String s : MultilineMessageHelper.format( + "Your build is requesting parallel execution, but this project contains the following " + + "plugin(s) that have goals not marked as thread-safe to support parallel execution.", + "While this /may/ work fine, please look for plugin updates and/or " + + "request plugins be made thread-safe.", + "If reporting an issue, report it against the plugin in question, not against Apache Maven." ) ) + { + logger.warn( s ); + } if ( logger.isDebugEnabled() ) { final Set<MojoDescriptor> unsafeGoals = executionPlan.getNonThreadSafeMojos(); - logger.warn( "The following goals are not marked @threadSafe in " + project.getName() + ":" ); + logger.warn( "The following goals are not marked as thread-safe in " + project.getName() + ":" ); for ( MojoDescriptor unsafeGoal : unsafeGoals ) { - logger.warn( unsafeGoal.getId() ); + logger.warn( " " + unsafeGoal.getId() ); } } else { - logger.warn( "The following plugins are not marked @threadSafe in " + project.getName() + ":" ); + logger.warn( "The following plugins are not marked as thread-safe in " + project.getName() + ":" ); for ( Plugin unsafePlugin : unsafePlugins ) { - logger.warn( unsafePlugin.getId() ); + logger.warn( " " + unsafePlugin.getId() ); } - logger.warn( "Enable debug to see more precisely which goals are not marked @threadSafe." ); + logger.warn( "" ); + logger.warn( "Enable debug to see precisely which goals are not marked as thread-safe." ); } - logger.warn( "*****************************************************************" ); + logger.warn( MultilineMessageHelper.separatorLine() ); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java 2022-06-06 18:16:38.000000000 +0200 @@ -19,16 +19,16 @@ * under the License. */ -import java.util.Collection; -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; import com.google.inject.Key; import com.google.inject.OutOfScopeException; import com.google.inject.Provider; import com.google.inject.Scope; +import com.google.inject.util.Providers; /** * SessionScope @@ -36,6 +36,18 @@ public class SessionScope implements Scope { + /** + * @since 3.3.0 + */ + public static class Memento + { + final Map<Key<?>, Provider<?>> seeded; + + Memento( final Map<Key<?>, Provider<?>> seeded ) + { + this.seeded = Collections.unmodifiableMap( new HashMap<>( seeded ) ); + } + } private static final Provider<Object> SEEDED_KEY_PROVIDER = new Provider<Object>() { @@ -48,127 +60,110 @@ /** * ScopeState */ - protected static final class ScopeState + private static final class ScopeState { - private final ConcurrentMap<Key<?>, CachingProvider<?>> provided = new ConcurrentHashMap<>(); + private final Map<Key<?>, Provider<?>> seeded = new HashMap<>(); - public <T> void seed( Class<T> clazz, Provider<T> value ) - { - provided.put( Key.get( clazz ), new CachingProvider<>( value ) ); - } + private final Map<Key<?>, Object> provided = new HashMap<>(); + } - @SuppressWarnings( "unchecked" ) - public <T> Provider<T> scope( Key<T> key, final Provider<T> unscoped ) - { - Provider<?> provider = provided.get( key ); - if ( provider == null ) - { - CachingProvider<?> newValue = new CachingProvider<>( unscoped ); - provider = provided.putIfAbsent( key, newValue ); - if ( provider == null ) - { - provider = newValue; - } - } - return ( Provider<T> ) provider; - } + private final ThreadLocal<LinkedList<ScopeState>> values = new ThreadLocal<>(); - public Collection<CachingProvider<?>> providers() + public void enter() + { + LinkedList<ScopeState> stack = values.get(); + if ( stack == null ) { - return provided.values(); + stack = new LinkedList<>(); + values.set( stack ); } - + stack.addFirst( new ScopeState() ); } - private final List<ScopeState> values = new CopyOnWriteArrayList<>(); - - public void enter() + /** + * @since 3.3.0 + */ + public void enter( Memento memento ) { - values.add( 0, new ScopeState() ); + enter(); + getScopeState().seeded.putAll( memento.seeded ); } - protected ScopeState getScopeState() + private ScopeState getScopeState() { - if ( values.isEmpty() ) + LinkedList<ScopeState> stack = values.get(); + if ( stack == null || stack.isEmpty() ) { - throw new OutOfScopeException( "Cannot access session scope outside of a scoping block" ); + throw new IllegalStateException(); } - return values.get( 0 ); + return stack.getFirst(); } public void exit() { - if ( values.isEmpty() ) + final LinkedList<ScopeState> stack = values.get(); + if ( stack == null || stack.isEmpty() ) { throw new IllegalStateException(); } - values.remove( 0 ); + stack.removeFirst(); + if ( stack.isEmpty() ) + { + values.remove(); + } + } + + /** + * @since 3.3.0 + */ + public Memento memento() + { + LinkedList<ScopeState> stack = values.get(); + return new Memento( stack != null ? stack.getFirst().seeded : Collections.<Key<?>, Provider<?>>emptyMap() ); } public <T> void seed( Class<T> clazz, Provider<T> value ) { - getScopeState().seed( clazz, value ); + getScopeState().seeded.put( Key.get( clazz ), value ); } public <T> void seed( Class<T> clazz, final T value ) { - seed( clazz, new Provider<T>() - { - @Override - public T get() - { - return value; - } - } ); + getScopeState().seeded.put( Key.get( clazz ), Providers.of( value ) ); } public <T> Provider<T> scope( final Key<T> key, final Provider<T> unscoped ) { - // Lazy evaluating provider return new Provider<T>() { - @Override + @SuppressWarnings( "unchecked" ) public T get() { - return getScopeState().scope( key, unscoped ).get(); - } - }; - } + LinkedList<ScopeState> stack = values.get(); + if ( stack == null || stack.isEmpty() ) + { + throw new OutOfScopeException( "Cannot access " + key + " outside of a scoping block" ); + } - /** - * CachingProvider - * @param <T> - */ - protected static class CachingProvider<T> implements Provider<T> - { - private final Provider<T> provider; - private volatile T value; + ScopeState state = stack.getFirst(); - CachingProvider( Provider<T> provider ) - { - this.provider = provider; - } + Provider<?> seeded = state.seeded.get( key ); - public T value() - { - return value; - } + if ( seeded != null ) + { + return (T) seeded.get(); + } - @Override - public T get() - { - if ( value == null ) - { - synchronized ( this ) + T provided = (T) state.provided.get( key ); + if ( provided == null && unscoped != null ) { - if ( value == null ) - { - value = provider.get(); - } + provided = unscoped.get(); + state.provided.put( key, provided ); } + + return provided; } - return value; - } + }; } @SuppressWarnings( { "unchecked" } ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java --- old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java 2022-06-06 18:16:38.000000000 +0200 @@ -147,12 +147,8 @@ // --------------------------------------------------------------------------------- // path = path.replaceAll( "//", "/" ); - return new File( path ).getAbsoluteFile(); - } - else - { - return new File( path ).getAbsoluteFile(); } + return new File( path ).getAbsoluteFile(); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java --- old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java 2022-06-06 18:16:38.000000000 +0200 @@ -4,11 +4,15 @@ import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; +import org.apache.maven.execution.MavenSession; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; +import org.apache.maven.repository.internal.MavenWorkspaceReader; +import org.codehaus.plexus.component.annotations.Component; import java.io.File; import java.nio.file.Files; +import java.util.concurrent.atomic.AtomicReference; import static java.util.Arrays.asList; @@ -33,6 +37,31 @@ public class DefaultMavenTest extends AbstractCoreMavenComponentTestCase { + @Component( role = AbstractMavenLifecycleParticipant.class, hint = "WsrClassCatcher" ) + private static final class WsrClassCatcher extends AbstractMavenLifecycleParticipant + { + private final AtomicReference<Class<?>> wsrClassRef = new AtomicReference<>( null ); + + @Override + public void afterProjectsRead( MavenSession session ) throws MavenExecutionException + { + wsrClassRef.set( session.getRepositorySession().getWorkspaceReader().getClass() ); + } + } + + public void testEnsureResolverSessionHasMavenWorkspaceReader() throws Exception + { + WsrClassCatcher wsrClassCatcher = ( WsrClassCatcher ) getContainer() + .lookup( AbstractMavenLifecycleParticipant.class, "WsrClassCatcher" ); + Maven maven = getContainer().lookup( Maven.class ); + MavenExecutionRequest request = createMavenExecutionRequest( getProject( "simple" ) ).setGoals( asList("validate") ); + + MavenExecutionResult result = maven.execute( request ); + + Class<?> wsrClass = wsrClassCatcher.wsrClassRef.get(); + assertTrue( "is null", wsrClass != null ); + assertTrue( String.valueOf( wsrClass ), MavenWorkspaceReader.class.isAssignableFrom( wsrClass ) ); + } public void testThatErrorDuringProjectDependencyGraphCreationAreStored() throws Exception diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java --- old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java 1970-01-01 01:00:00.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java 2022-06-06 18:16:38.000000000 +0200 @@ -0,0 +1,71 @@ +package org.apache.maven.internal; + +/* + * 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.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class MultilineMessageHelperTest +{ + + @Test + public void testBuilderCommon() + { + List<String> msgs = new ArrayList<>(); + msgs.add( "*****************************************************************" ); + msgs.add( "* Your build is requesting parallel execution, but project *" ); + msgs.add( "* contains the following plugin(s) that have goals not marked *" ); + msgs.add( "* as @threadSafe to support parallel building. *" ); + msgs.add( "* While this /may/ work fine, please look for plugin updates *" ); + msgs.add( "* and/or request plugins be made thread-safe. *" ); + msgs.add( "* If reporting an issue, report it against the plugin in *" ); + msgs.add( "* question, not against maven-core *" ); + msgs.add( "*****************************************************************" ); + + assertEquals( msgs, MultilineMessageHelper.format( + "Your build is requesting parallel execution, but project contains the following " + + "plugin(s) that have goals not marked as @threadSafe to support parallel building.", + "While this /may/ work fine, please look for plugin updates and/or " + + "request plugins be made thread-safe.", + "If reporting an issue, report it against the plugin in question, not against maven-core" + ) ); + } + + @Test + public void testMojoExecutor() + { + List<String> msgs = new ArrayList<>(); + msgs.add( "*****************************************************************" ); + msgs.add( "* An aggregator Mojo is already executing in parallel build, *" ); + msgs.add( "* but aggregator Mojos require exclusive access to reactor to *" ); + msgs.add( "* prevent race conditions. This mojo execution will be blocked *" ); + msgs.add( "* until the aggregator work is done. *" ); + msgs.add( "*****************************************************************" ); + + assertEquals( msgs, MultilineMessageHelper.format( + "An aggregator Mojo is already executing in parallel build, but aggregator " + + "Mojos require exclusive access to reactor to prevent race conditions. This " + + "mojo execution will be blocked until the aggregator work is done." ) ); + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java --- old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,132 +0,0 @@ -package org.apache.maven.session.scope.internal; - -/* - * 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 javax.inject.Provider; - -import com.google.inject.Key; -import com.google.inject.OutOfScopeException; -import org.apache.maven.model.locator.DefaultModelLocator; -import org.apache.maven.model.locator.ModelLocator; -import org.apache.maven.plugin.DefaultPluginRealmCache; -import org.apache.maven.plugin.PluginRealmCache; -import org.junit.Test; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.fail; - -public class SessionScopeTest { - - @Test - public void testScope() throws Exception - { - SessionScope scope = new SessionScope(); - - try - { - scope.seed( ModelLocator.class, new DefaultModelLocator() ); - fail( "Expected a " + OutOfScopeException.class.getName() + " exception to be thrown" ); - } - catch ( OutOfScopeException e ) - { - // expected - } - - Provider<ModelLocator> pml = scope.scope( Key.get( ModelLocator.class), new DefaultModelLocatorProvider() ); - assertNotNull( pml ); - try - { - pml.get(); - fail( "Expected a " + OutOfScopeException.class.getName() + " exception to be thrown" ); - } - catch ( OutOfScopeException e ) - { - // expected - } - - Provider<PluginRealmCache> pmst = scope.scope( Key.get( PluginRealmCache.class ), new DefaultPluginRealmCacheProvider() ); - assertNotNull( pmst ); - - scope.enter(); - - final DefaultModelLocator dml1 = new DefaultModelLocator(); - scope.seed( ModelLocator.class, dml1 ); - - assertSame( dml1, pml.get() ); - - PluginRealmCache mst1 = pmst.get(); - assertSame( mst1, pmst.get() ); - Provider<PluginRealmCache> pmst1 = scope.scope( Key.get( PluginRealmCache.class ), new DefaultPluginRealmCacheProvider() ); - assertNotNull( pmst1 ); - assertSame( mst1, pmst1.get() ); - - scope.enter(); - - pmst1 = scope.scope( Key.get( PluginRealmCache.class ), new DefaultPluginRealmCacheProvider() ); - assertNotNull( pmst1 ); - assertNotSame( mst1, pmst1.get() ); - - scope.exit(); - - assertSame( mst1, pmst.get() ); - - scope.exit(); - - try - { - pmst.get(); - fail( "Expected a " + OutOfScopeException.class.getName() + " exception to be thrown" ); - } - catch ( OutOfScopeException e ) - { - // expected - } - try - { - scope.seed( ModelLocator.class, new DefaultModelLocator() ); - fail( "Expected a " + OutOfScopeException.class.getName() + " exception to be thrown" ); - } - catch ( OutOfScopeException e ) - { - // expected - } - } - - private static class DefaultPluginRealmCacheProvider implements com.google.inject.Provider<PluginRealmCache> - { - @Override - public PluginRealmCache get() - { - return new DefaultPluginRealmCache(); - } - } - - private static class DefaultModelLocatorProvider implements com.google.inject.Provider<ModelLocator> - { - @Override - public ModelLocator get() - { - return new DefaultModelLocator(); - } - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/src/test/projects/default-maven/simple/pom.xml new/apache-maven-3.8.6/maven-core/src/test/projects/default-maven/simple/pom.xml --- old/apache-maven-3.8.5/maven-core/src/test/projects/default-maven/simple/pom.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/apache-maven-3.8.6/maven-core/src/test/projects/default-maven/simple/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -0,0 +1,10 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>simple</groupId> + <artifactId>simple</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>pom</packaging> + +</project> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-embedder/pom.xml new/apache-maven-3.8.6/maven-embedder/pom.xml --- old/apache-maven-3.8.5/maven-embedder/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-embedder/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-embedder</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-model/pom.xml new/apache-maven-3.8.6/maven-model/pom.xml --- old/apache-maven-3.8.5/maven-model/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-model/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-model</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-model-builder/pom.xml new/apache-maven-3.8.6/maven-model-builder/pom.xml --- old/apache-maven-3.8.5/maven-model-builder/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-model-builder/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-model-builder</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-plugin-api/pom.xml new/apache-maven-3.8.6/maven-plugin-api/pom.xml --- old/apache-maven-3.8.5/maven-plugin-api/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-plugin-api/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-plugin-api</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-repository-metadata/pom.xml new/apache-maven-3.8.6/maven-repository-metadata/pom.xml --- old/apache-maven-3.8.5/maven-repository-metadata/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-repository-metadata/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-repository-metadata</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-resolver-provider/pom.xml new/apache-maven-3.8.6/maven-resolver-provider/pom.xml --- old/apache-maven-3.8.5/maven-resolver-provider/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-resolver-provider/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-resolver-provider</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-settings/pom.xml new/apache-maven-3.8.6/maven-settings/pom.xml --- old/apache-maven-3.8.5/maven-settings/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-settings/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-settings</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-settings-builder/pom.xml new/apache-maven-3.8.6/maven-settings-builder/pom.xml --- old/apache-maven-3.8.5/maven-settings-builder/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-settings-builder/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-settings-builder</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/maven-slf4j-provider/pom.xml new/apache-maven-3.8.6/maven-slf4j-provider/pom.xml --- old/apache-maven-3.8.5/maven-slf4j-provider/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/maven-slf4j-provider/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -25,7 +25,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> </parent> <artifactId>maven-slf4j-provider</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apache-maven-3.8.5/pom.xml new/apache-maven-3.8.6/pom.xml --- old/apache-maven-3.8.5/pom.xml 2022-03-05 12:30:01.000000000 +0100 +++ new/apache-maven-3.8.6/pom.xml 2022-06-06 18:16:38.000000000 +0200 @@ -30,7 +30,7 @@ </parent> <artifactId>maven</artifactId> - <version>3.8.5</version> + <version>3.8.6</version> <packaging>pom</packaging> <name>Apache Maven</name> @@ -52,11 +52,11 @@ <classWorldsVersion>2.6.0</classWorldsVersion> <commonsCliVersion>1.4</commonsCliVersion> <commonsLangVersion>3.8.1</commonsLangVersion> - <junitVersion>4.12</junitVersion> + <junitVersion>4.13.2</junitVersion> <mockitoVersion>2.21.0</mockitoVersion> <plexusVersion>2.1.0</plexusVersion> <plexusInterpolationVersion>1.26</plexusInterpolationVersion> - <plexusUtilsVersion>3.3.0</plexusUtilsVersion> + <plexusUtilsVersion>3.3.1</plexusUtilsVersion> <guiceVersion>4.2.2</guiceVersion> <sisuVersion>0.3.5</sisuVersion> <wagonVersion>3.5.1</wagonVersion> @@ -65,7 +65,7 @@ <modelloVersion>1.11</modelloVersion> <jxpathVersion>1.3</jxpathVersion> <resolverVersion>1.6.3</resolverVersion> - <slf4jVersion>1.7.32</slf4jVersion> + <slf4jVersion>1.7.36</slf4jVersion> <xmlunitVersion>2.2.1</xmlunitVersion> <powermockVersion>1.7.4</powermockVersion> <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile> @@ -76,7 +76,7 @@ <maven.site.path>ref/3-LATEST</maven.site.path> <checkstyle.violation.ignore>None</checkstyle.violation.ignore> <checkstyle.excludes>**/package-info.java</checkstyle.excludes> - <project.build.outputTimestamp>2022-03-05T11:30:01Z</project.build.outputTimestamp> + <project.build.outputTimestamp>2022-06-06T16:16:38Z</project.build.outputTimestamp> </properties> <modules> @@ -100,7 +100,7 @@ <connection>scm:git:https://gitbox.apache.org/repos/asf/maven.git</connection> <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven.git</developerConnection> <url>https://github.com/apache/maven/tree/${project.scm.tag}</url> - <tag>maven-3.8.5</tag> + <tag>maven-3.8.6</tag> </scm> <issueManagement> <system>jira</system> @@ -315,7 +315,7 @@ <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> - <version>1.2.1</version> + <version>1.2.11</version> <optional>true</optional> </dependency> <!-- Wagon --> @@ -462,6 +462,11 @@ <pluginManagement> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.10.1</version> + </plugin> + <plugin> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-component-metadata</artifactId> <version>${plexusVersion}</version> @@ -626,13 +631,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> - <dependencies> - <dependency> - <groupId>org.codehaus.mojo</groupId> - <artifactId>extra-enforcer-rules</artifactId> - <version>1.4</version> - </dependency> - </dependencies> <executions> <execution> <goals>
participants (1)
-
Source-Sync