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

Reply via email to