This is an automated email from the ASF dual-hosted git repository. ndipiazza pushed a commit to branch TIKA-4587 in repository https://gitbox.apache.org/repos/asf/tika.git
commit 4bf8a11f547a171bd13e3b7da0e6ce4a3125ae20 Author: Nicholas DiPiazza <[email protected]> AuthorDate: Thu Dec 25 11:02:58 2025 -0600 TIKA-4587: Add development mode support for tika-grpc with plugin hot-reloading - Add dev profile to tika-grpc/pom.xml with plugin dependencies - Include all plugin modules in dev profile to make classes available at runtime - Set tika.plugin.dev.mode=true system property to enable PF4J development mode - Add run-dev.sh convenience script for starting server in dev mode - Rename test-config.json to test-dev-config.json for clarity - Allows running tika-grpc with plugins loaded from target/classes directories - Enables rapid development without building plugin ZIPs --- tika-grpc/pom.xml | 69 ++++++++++++++++++++-- tika-grpc/run-dev.sh | 20 +++++++ .../{test-config.json => test-dev-config.json} | 0 3 files changed, 85 insertions(+), 4 deletions(-) diff --git a/tika-grpc/pom.xml b/tika-grpc/pom.xml index 3324ffc72..d487c6acb 100644 --- a/tika-grpc/pom.xml +++ b/tika-grpc/pom.xml @@ -488,6 +488,69 @@ <!-- Development profile for running tika-grpc with plugin development mode --> <profile> <id>dev</id> + <dependencies> + <!-- Include plugin dependencies so their classes are available at runtime --> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-file-system</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-csv</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-json</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-jdbc</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-kafka</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-gcs</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-opensearch</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-ignite</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-solr</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-az-blob</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-microsoft-graph</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tika</groupId> + <artifactId>tika-pipes-s3</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> <build> <plugins> <plugin> @@ -503,10 +566,8 @@ </systemProperty> </systemProperties> <arguments> - <argument>-c</argument> - <argument>${project.basedir}/dev-config.json</argument> - <argument>-p</argument> - <argument>50052</argument> + <argument>--config</argument> + <argument>${config.file}</argument> </arguments> </configuration> </plugin> diff --git a/tika-grpc/run-dev.sh b/tika-grpc/run-dev.sh new file mode 100755 index 000000000..0ecdda9cc --- /dev/null +++ b/tika-grpc/run-dev.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Run tika-grpc in development mode with plugin hot-reloading +# +# Usage: +# ./run-dev.sh [config-file] +# +# If no config file is specified, defaults to test-dev-config.json + +CONFIG_FILE="${1:-test-dev-config.json}" + +echo "🚀 Starting Tika gRPC Server in Development Mode" +echo "================================================" +echo "Config file: $CONFIG_FILE" +echo "Plugin dev mode: ENABLED" +echo "" +echo "Plugins will be loaded from target/classes directories" +echo "Press Ctrl+C to stop the server" +echo "" + +mvn exec:java -Pdev -Dconfig.file="$CONFIG_FILE" diff --git a/tika-grpc/test-config.json b/tika-grpc/test-dev-config.json similarity index 100% rename from tika-grpc/test-config.json rename to tika-grpc/test-dev-config.json
