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

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 2831aa182d fix flaky windows timeouts on ci/cd (#2620)
2831aa182d is described below

commit 2831aa182d76281d315c5fbb62366724c805a424
Author: Tim Allison <[email protected]>
AuthorDate: Wed Feb 18 16:54:49 2026 -0500

    fix flaky windows timeouts on ci/cd (#2620)
---
 .github/workflows/main-jdk17-build.yml             |  1 +
 .../main-jdk17-windows-build-multi-locale.yml      |  1 +
 .github/workflows/main-jdk17-windows-build.yml     |  1 +
 .github/workflows/main-jdk21-build.yml             |  1 +
 .github/workflows/main-jdk25-build.yml             |  1 +
 .../tika-pipes-plugins/tika-pipes-http/pom.xml     | 69 ++++++++++++++++------
 .../test/resources/configs/tika-config-http.json   |  2 +-
 7 files changed, 58 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/main-jdk17-build.yml 
b/.github/workflows/main-jdk17-build.yml
index 73005b208d..bd51d496a0 100644
--- a/.github/workflows/main-jdk17-build.yml
+++ b/.github/workflows/main-jdk17-build.yml
@@ -30,6 +30,7 @@ on:
 jobs:
   build:
     runs-on: ubuntu-latest
+    timeout-minutes: 60
     strategy:
       matrix:
         java: [ '17' ]
diff --git a/.github/workflows/main-jdk17-windows-build-multi-locale.yml 
b/.github/workflows/main-jdk17-windows-build-multi-locale.yml
index cd07d76ec3..c99ee86e30 100644
--- a/.github/workflows/main-jdk17-windows-build-multi-locale.yml
+++ b/.github/workflows/main-jdk17-windows-build-multi-locale.yml
@@ -30,6 +30,7 @@ on:
 jobs:
   build:
     runs-on: windows-latest
+    timeout-minutes: 60
     strategy:
       matrix:
         java: [ '17' ]
diff --git a/.github/workflows/main-jdk17-windows-build.yml 
b/.github/workflows/main-jdk17-windows-build.yml
index 26a288043f..9a7f85715d 100644
--- a/.github/workflows/main-jdk17-windows-build.yml
+++ b/.github/workflows/main-jdk17-windows-build.yml
@@ -30,6 +30,7 @@ on:
 jobs:
   build:
     runs-on: windows-latest
+    timeout-minutes: 60
     strategy:
       matrix:
         java: [ '17' ]
diff --git a/.github/workflows/main-jdk21-build.yml 
b/.github/workflows/main-jdk21-build.yml
index 02b970716e..0d76a8da3a 100644
--- a/.github/workflows/main-jdk21-build.yml
+++ b/.github/workflows/main-jdk21-build.yml
@@ -26,6 +26,7 @@ on:
 jobs:
   build:
     runs-on: ubuntu-latest
+    timeout-minutes: 60
     strategy:
       matrix:
         java: [ '21' ]
diff --git a/.github/workflows/main-jdk25-build.yml 
b/.github/workflows/main-jdk25-build.yml
index 20dbcde48c..3575665cdb 100644
--- a/.github/workflows/main-jdk25-build.yml
+++ b/.github/workflows/main-jdk25-build.yml
@@ -26,6 +26,7 @@ on:
 jobs:
   build:
     runs-on: ubuntu-latest
+    timeout-minutes: 60
     strategy:
       matrix:
         java: [ '25' ]
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
index d4e35c6b6d..2029849ea6 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
@@ -83,13 +83,52 @@
 
   <build>
     <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <annotationProcessors>
+            
<annotationProcessor>org.pf4j.processor.ExtensionAnnotationProcessor</annotationProcessor>
+          </annotationProcessors>
+        </configuration>
+      </plugin>
+      <!-- Build the plugin ZIP before tests so that tests can load it from
+           target/plugins via PF4J in the standard DEPLOYMENT mode, matching
+           how tika-server-core and tika-async-cli set up their test plugins.
+           Plugin declaration order matters: jar first, then deps, then 
assembly. -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <archive>
+            <manifestEntries>
+              
<Automatic-Module-Name>org.apache.tika.pipes.fetcher.http</Automatic-Module-Name>
+            </manifestEntries>
+          </archive>
+        </configuration>
+        <executions>
+          <!-- Disable the default jar execution in package phase since
+               pre-test-jar already creates the main artifact earlier. -->
+          <execution>
+            <id>default-jar</id>
+            <phase>none</phase>
+          </execution>
+          <execution>
+            <id>pre-test-jar</id>
+            <phase>process-test-resources</phase>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <executions>
           <execution>
             <id>copy-dependencies</id>
-            <phase>package</phase>
+            <phase>process-test-resources</phase>
             <goals>
               <goal>copy-dependencies</goal>
             </goals>
@@ -102,17 +141,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifestEntries>
-              
<Automatic-Module-Name>org.apache.tika.pipes.fetcher.http</Automatic-Module-Name>
-            </manifestEntries>
-          </archive>
-        </configuration>
-      </plugin>
       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <configuration>
@@ -124,20 +152,27 @@
         <executions>
           <execution>
             <id>make-assembly</id>
-            <phase>package</phase>
+            <phase>process-test-resources</phase>
             <goals>
               <goal>single</goal>
             </goals>
+            <configuration>
+              
<outputDirectory>${project.build.directory}/plugins</outputDirectory>
+            </configuration>
           </execution>
         </executions>
       </plugin>
+      <!-- Self-testing a PF4J plugin requires development mode so that
+           PF4J uses parent-first classloading. Otherwise the plugin's classes
+           are loaded by an isolated PluginClassLoader, causing 
ClassCastException
+           when the test casts to concrete types like HttpFetcher. -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
+        <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <annotationProcessors>
-            
<annotationProcessor>org.pf4j.processor.ExtensionAnnotationProcessor</annotationProcessor>
-          </annotationProcessors>
+          <systemPropertyVariables>
+            <tika.plugin.dev.mode>true</tika.plugin.dev.mode>
+          </systemPropertyVariables>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/tika-pipes/tika-pipes-plugins/tika-pipes-http/src/test/resources/configs/tika-config-http.json
 
b/tika-pipes/tika-pipes-plugins/tika-pipes-http/src/test/resources/configs/tika-config-http.json
index dd8ac7ad06..7ebb4dd77c 100644
--- 
a/tika-pipes/tika-pipes-plugins/tika-pipes-http/src/test/resources/configs/tika-config-http.json
+++ 
b/tika-pipes/tika-pipes-plugins/tika-pipes-http/src/test/resources/configs/tika-config-http.json
@@ -17,5 +17,5 @@
       }
     }
   },
-  "plugin-roots": "target/classes"
+  "plugin-roots": "target/plugins"
 }

Reply via email to