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"
}