Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package maven-invoker-plugin for 
openSUSE:Factory checked in at 2026-05-06 19:19:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maven-invoker-plugin (Old)
 and      /work/SRC/openSUSE:Factory/.maven-invoker-plugin.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maven-invoker-plugin"

Wed May  6 19:19:52 2026 rev:10 rq:1351149 version:3.10.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/maven-invoker-plugin/maven-invoker-plugin.changes    
    2026-04-26 21:19:13.544774530 +0200
+++ 
/work/SRC/openSUSE:Factory/.maven-invoker-plugin.new.30200/maven-invoker-plugin.changes
     2026-05-06 19:23:47.839685575 +0200
@@ -1,0 +2,10 @@
+Wed May  6 07:02:17 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to upstream version 3.10.1
+  * Bug Fixes
+    + Provide separate logs for each execution for rerunning jobs
+  * Dependency updates
+    + Bump commons-codec:commons-codec from 1.21.0 to 1.22.0
+    + Bump commons-io:commons-io from 2.21.0 to 2.22.0
+
+-------------------------------------------------------------------

Old:
----
  maven-invoker-plugin-3.10.0-source-release.zip

New:
----
  maven-invoker-plugin-3.10.1-source-release.zip

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ maven-invoker-plugin.spec ++++++
--- /var/tmp/diff_new_pack.hnb3WU/_old  2026-05-06 19:23:48.595716763 +0200
+++ /var/tmp/diff_new_pack.hnb3WU/_new  2026-05-06 19:23:48.599716928 +0200
@@ -18,7 +18,7 @@
 
 %bcond_with  groovy
 Name:           maven-invoker-plugin
-Version:        3.10.0
+Version:        3.10.1
 Release:        0
 Summary:        Maven Invoker Plugin
 License:        Apache-2.0

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.hnb3WU/_old  2026-05-06 19:23:48.643718742 +0200
+++ /var/tmp/diff_new_pack.hnb3WU/_new  2026-05-06 19:23:48.651719073 +0200
@@ -1,6 +1,6 @@
-mtime: 1777227697
-commit: 4198307db4a2739bf80bd831ff25f6bd143330f9bc48d0a737d8ff8aa39c51d6
+mtime: 1778052551
+commit: 74ab2b7dc00f63cbd846839cf02ef2966a9c5ee5100c9879500a344e3d28102c
 url: https://src.opensuse.org/java-packages/maven-invoker-plugin
-revision: 4198307db4a2739bf80bd831ff25f6bd143330f9bc48d0a737d8ff8aa39c51d6
+revision: 74ab2b7dc00f63cbd846839cf02ef2966a9c5ee5100c9879500a344e3d28102c
 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-05-06 09:29:11.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ maven-invoker-plugin-3.10.0-source-release.zip -> 
maven-invoker-plugin-3.10.1-source-release.zip ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-invoker-plugin-3.10.0/DEPENDENCIES 
new/maven-invoker-plugin-3.10.1/DEPENDENCIES
--- old/maven-invoker-plugin-3.10.0/DEPENDENCIES        2026-04-22 
21:17:38.000000000 +0200
+++ new/maven-invoker-plugin-3.10.1/DEPENDENCIES        2026-05-02 
20:49:24.000000000 +0200
@@ -89,10 +89,10 @@
   - Apache Commons BeanUtils 
(https://commons.apache.org/proper/commons-beanutils) 
commons-beanutils:commons-beanutils:jar:1.11.0
     License: Apache-2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
 
-  - Apache Commons Codec (https://commons.apache.org/proper/commons-codec/) 
commons-codec:commons-codec:jar:1.21.0
+  - Apache Commons Codec (https://commons.apache.org/proper/commons-codec/) 
commons-codec:commons-codec:jar:1.22.0
     License: Apache-2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
 
-  - Apache Commons IO (https://commons.apache.org/proper/commons-io/) 
commons-io:commons-io:jar:2.21.0
+  - Apache Commons IO (https://commons.apache.org/proper/commons-io/) 
commons-io:commons-io:jar:2.22.0
     License: Apache-2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
 
   - Apache Commons Logging 
(https://commons.apache.org/proper/commons-logging/) 
commons-logging:commons-logging:jar:1.3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-invoker-plugin-3.10.0/pom.xml 
new/maven-invoker-plugin-3.10.1/pom.xml
--- old/maven-invoker-plugin-3.10.0/pom.xml     2026-04-22 21:17:38.000000000 
+0200
+++ new/maven-invoker-plugin-3.10.1/pom.xml     2026-05-02 20:49:24.000000000 
+0200
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>maven-invoker-plugin</artifactId>
-  <version>3.10.0</version>
+  <version>3.10.1</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven Invoker Plugin</name>
@@ -42,7 +42,7 @@
   <scm>
     
<connection>scm:git:https://github.com/apache/maven-invoker-plugin.git</connection>
     
<developerConnection>scm:git:https://github.com/apache/maven-invoker-plugin.git</developerConnection>
-    <tag>maven-invoker-plugin-3.10.0</tag>
+    <tag>maven-invoker-plugin-3.10.1</tag>
     
<url>https://github.com/apache/maven-invoker-plugin/tree/${project.scm.tag}</url>
   </scm>
   <issueManagement>
@@ -67,7 +67,7 @@
     <beanshell-groupId>org.apache-extras.beanshell</beanshell-groupId>
     <beanshell-artifactId>bsh</beanshell-artifactId>
     <beanshell-version>2.0b6</beanshell-version>
-    
<project.build.outputTimestamp>2026-04-22T21:17:37Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2026-05-02T20:49:23Z</project.build.outputTimestamp>
     <groovyVersion>4.0.31</groovyVersion>
     <!-- TODO check with next parent -->
     <version.plexus-utils>4.0.3</version.plexus-utils>
@@ -84,7 +84,7 @@
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
-        <version>1.21.0</version>
+        <version>1.22.0</version>
       </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
@@ -94,7 +94,7 @@
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.21.0</version>
+        <version>2.22.0</version>
       </dependency>
       <dependency>
         <groupId>org.apache.groovy</groupId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/it/fail-build-streamLogsOnFailures/pom.xml 
new/maven-invoker-plugin-3.10.1/src/it/fail-build-streamLogsOnFailures/pom.xml
--- 
old/maven-invoker-plugin-3.10.0/src/it/fail-build-streamLogsOnFailures/pom.xml  
    2026-04-22 21:17:38.000000000 +0200
+++ 
new/maven-invoker-plugin-3.10.1/src/it/fail-build-streamLogsOnFailures/pom.xml  
    2026-05-02 20:49:24.000000000 +0200
@@ -47,6 +47,7 @@
             <pomInclude>*/pom.xml</pomInclude>
           </pomIncludes>
           <streamLogsOnFailures>true</streamLogsOnFailures>
+          <rerunFailingTestsCount>1</rerunFailingTestsCount>
         </configuration>
         <executions>
           <execution>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/it/fail-build-streamLogsOnFailures/verify.groovy
 
new/maven-invoker-plugin-3.10.1/src/it/fail-build-streamLogsOnFailures/verify.groovy
--- 
old/maven-invoker-plugin-3.10.0/src/it/fail-build-streamLogsOnFailures/verify.groovy
        2026-04-22 21:17:38.000000000 +0200
+++ 
new/maven-invoker-plugin-3.10.1/src/it/fail-build-streamLogsOnFailures/verify.groovy
        2026-05-02 20:49:24.000000000 +0200
@@ -18,12 +18,19 @@
  */
 
 def FS = File.separator
-def buildLogOfProject = new File( basedir, 'target/it/project/build.log' ).text
+def buildLogOfProject1 = new File(basedir, 
'target/it/project/build.log.1').text
+def buildLogOfProject = new File(basedir, 'target/it/project/build.log').text
 
-def buildLog = new File( basedir, 'build.log' ).text
+def buildLog = new File(basedir, 'build.log').text
 
-assert buildLog.contains( '*** begin build.log for: project' + FS + 'pom.xml 
***' )
-assert buildLog.contains( buildLogOfProject )
-assert buildLog.contains( '*** end build.log for: project' + FS + 'pom.xml 
***' )
+assert buildLog.contains('*** begin build.log for: project' + FS + 'pom.xml 
***')
+assert buildLog.contains('*** build.log for execution: 1 ***')
+assert buildLog.contains(buildLogOfProject1)
+assert buildLog.contains('*** build.log for execution: 2 ***')
+assert buildLog.contains(buildLogOfProject)
+assert buildLog.contains('*** end build.log for: project' + FS + 'pom.xml ***')
 
-assert buildLog.contains( 'ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-invoker-plugin:' + projectVersion + ':run' )
+// the build was re-run so the error is logged twice, once for each run
+assert buildLog.count("[FATAL] 'modelVersion' of '99.0.0'") == 2
+
+assert buildLog.contains('ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-invoker-plugin:' + projectVersion + ':run')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/it/rerun-build/verify.groovy 
new/maven-invoker-plugin-3.10.1/src/it/rerun-build/verify.groovy
--- old/maven-invoker-plugin-3.10.0/src/it/rerun-build/verify.groovy    
2026-04-22 21:17:38.000000000 +0200
+++ new/maven-invoker-plugin-3.10.1/src/it/rerun-build/verify.groovy    
2026-05-02 20:49:24.000000000 +0200
@@ -20,8 +20,8 @@
  */
 
 
-assert new File(basedir, 'target/it/setup/touch.txt' ).exists()
-assert new File(basedir, 'target/it/project/touch.txt' ).exists()
+assert new File(basedir, 'target/it/setup/touch.txt').exists()
+assert new File(basedir, 'target/it/project/touch.txt').exists()
 
 def buildLog = new File(basedir, 'build.log').text
 
@@ -33,12 +33,14 @@
 assert buildLog.count("project${fs}pom.xml .................................. 
FAILED") == 1
 assert buildLog.count("project${fs}pom.xml .................................. 
SUCCESS") == 1
 
+def setupBuildLog1 = new File(basedir, 'target/it/setup/build.log.1').text
+assert setupBuildLog1.count("[INFO] BUILD SUCCESS") == 1
+
 def setupBuildLog = new File(basedir, 'target/it/setup/build.log').text
+assert setupBuildLog.count("[INFO] BUILD SUCCESS") == 1
 
-// The project should be built twice, once for the first run and once for the 
rerun.
-assert setupBuildLog.count("[INFO] BUILD SUCCESS") == 2
+def projectBuildLog1 = new File(basedir, 'target/it/project/build.log.1').text
+assert projectBuildLog1.count("[INFO] BUILD SUCCESS") == 1
 
 def projectBuildLog = new File(basedir, 'target/it/project/build.log').text
-
-// The project should be built twice, once for the first run and once for the 
rerun.
-assert projectBuildLog.count("[INFO] BUILD SUCCESS") == 2
+assert projectBuildLog.count("[INFO] BUILD SUCCESS") == 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java
 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java
--- 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java
     2026-04-22 21:17:38.000000000 +0200
+++ 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java
     2026-05-02 20:49:24.000000000 +0200
@@ -32,6 +32,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -2097,15 +2098,22 @@
             }
 
             Log streamLogger = streamLogs ? getLog() : null;
-            File logFile = projectLogDirectory.resolve("build.log").toFile();
+            Path logPath = projectLogDirectory.resolve("build.log");
+
             try {
-                if (executionCount > 1) {
-                    logger = new FileLoggerAppender(logFile, streamLogger);
-                    getLog().debug("Append to build log: " + logFile);
-                } else {
-                    logger = new FileLogger(logFile, streamLogger);
-                    getLog().debug("New build log initialized: " + logFile);
+                if (executionCount > 1 && Files.exists(logPath)) {
+                    // next execution, rename log file from build.log to 
build-<executionCount -1 >.log
+                    // we preserve log from previous execution, and start with 
new log file for current execution
+                    // each execution should have new log file as many 
assertions check string presence in log file, a
+                    // nd if we keep appending to same log file, it will be 
hard to determine which log entry belongs to
+                    // which execution
+                    Path logFileBackup =
+                            
logPath.getParent().resolve(logPath.getFileName().toString() + "." + 
(executionCount - 1));
+                    getLog().debug("Renaming existing log file " + logPath + " 
to " + logFileBackup);
+                    Files.move(logPath, logFileBackup, 
StandardCopyOption.REPLACE_EXISTING);
                 }
+                logger = new FileLogger(logPath.toFile(), streamLogger);
+                getLog().debug("New build log initialized: " + logPath);
             } catch (IOException e) {
                 throw new MojoExecutionException("Error initializing build 
logfile in: " + projectLogDirectory, e);
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/FileLoggerAppender.java
 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/FileLoggerAppender.java
--- 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/FileLoggerAppender.java
      2026-04-22 21:17:38.000000000 +0200
+++ 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/FileLoggerAppender.java
      1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.invoker;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-
-import org.apache.maven.plugin.logging.Log;
-
-/**
- *
- */
-class FileLoggerAppender extends FileLogger {
-
-    /**
-     * Creates a new logger that appends to the specified file and optionally 
mirrors messages to the given mojo logger.
-     *
-     * @param outputFile The path to the output file, must not be 
<code>null</code>.
-     * @param log The mojo logger to additionally output messages to, may be 
<code>null</code> if not used.
-     * @throws IOException If the output file could not be created.
-     */
-    FileLoggerAppender(File outputFile, final Log log) throws IOException {
-        super(outputFile, log);
-    }
-
-    @Override
-    protected OutputStream createOutputStream(Path outputPath) throws 
IOException {
-        return Files.newOutputStream(outputPath, StandardOpenOption.APPEND, 
StandardOpenOption.CREATE);
-    }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/InvokerSession.java
 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/InvokerSession.java
--- 
old/maven-invoker-plugin-3.10.0/src/main/java/org/apache/maven/plugins/invoker/InvokerSession.java
  2026-04-22 21:17:38.000000000 +0200
+++ 
new/maven-invoker-plugin-3.10.1/src/main/java/org/apache/maven/plugins/invoker/InvokerSession.java
  2026-05-02 20:49:24.000000000 +0200
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -201,21 +202,51 @@
         jobToLogs.addAll(errorJobs);
 
         for (BuildJob buildJob : jobToLogs) {
-            File buildLogFile = buildJob.getBuildlog() != null ? new 
File(buildJob.getBuildlog()) : null;
-            if (buildLogFile != null && buildLogFile.exists()) {
+            Path buildLogPath = buildJob.getBuildlog() != null ? new 
File(buildJob.getBuildlog()).toPath() : null;
+            if (buildLogPath != null && Files.exists(buildLogPath)) {
                 try {
                     // prepare message with build.log in one string to omit 
begin [ERROR], [WARN]
                     // so whole log will be displayed without decoration
                     StringBuilder buildLogMessage = new StringBuilder();
                     buildLogMessage.append(System.lineSeparator());
                     buildLogMessage.append(System.lineSeparator());
-                    buildLogMessage.append("*** begin build.log for: " + 
buildJob.getProject() + " ***");
-                    buildLogMessage.append(System.lineSeparator());
-                    try (Reader buildLogReader = 
Files.newBufferedReader(buildLogFile.toPath())) {
-                        
buildLogMessage.append(IOUtil.toString(buildLogReader));
+                    buildLogMessage
+                            .append("*** begin build.log for: ")
+                            .append(buildJob.getProject())
+                            .append(" ***")
+                            .append(System.lineSeparator());
+
+                    if (buildJob.getExecutionCount() > 1) {
+                        // try to read build log from each execution
+                        for (int executionCount = 1;
+                                executionCount <= buildJob.getExecutionCount() 
- 1;
+                                executionCount++) {
+                            // log file name is hardcoded in whole project
+                            buildLogMessage
+                                    .append("*** build.log for execution: ")
+                                    .append(executionCount)
+                                    .append(" ***")
+                                    .append(System.lineSeparator());
+                            Path path = buildLogPath
+                                    .getParent()
+                                    
.resolve(buildLogPath.getFileName().toString() + "." + executionCount);
+                            appendLogToMessage(path, buildLogMessage);
+                        }
+
+                        buildLogMessage
+                                .append("*** build.log for execution: ")
+                                .append(buildJob.getExecutionCount())
+                                .append(" ***")
+                                .append(System.lineSeparator());
                     }
-                    buildLogMessage.append("*** end build.log for: " + 
buildJob.getProject() + " ***");
-                    buildLogMessage.append(System.lineSeparator());
+
+                    appendLogToMessage(buildLogPath, buildLogMessage);
+
+                    buildLogMessage
+                            .append("*** end build.log for: ")
+                            .append(buildJob.getProject())
+                            .append(" ***")
+                            .append(System.lineSeparator());
 
                     logWithLevel(logger, ignoreFailures, SEPARATOR);
                     logWithLevel(logger, ignoreFailures, 
buildLogMessage.toString());
@@ -228,6 +259,14 @@
             }
         }
     }
+
+    private void appendLogToMessage(Path logPath, StringBuilder 
buildLogMessage) throws IOException {
+        if (logPath != null && Files.exists(logPath)) {
+            try (Reader buildLogReader = Files.newBufferedReader(logPath)) {
+                buildLogMessage.append(IOUtil.toString(buildLogReader));
+            }
+        }
+    }
 
     /**
      * Handles the build failures in this session.

Reply via email to