[ 
https://issues.apache.org/jira/browse/TIKA-4734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18084056#comment-18084056
 ] 

ASF GitHub Bot commented on TIKA-4734:
--------------------------------------

tballison commented on code in PR #2843:
URL: https://github.com/apache/tika/pull/2843#discussion_r3316819174


##########
tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java:
##########
@@ -604,27 +614,27 @@ public void process(String arg) throws Exception {
         System.out.println(localConfig.getConfig().toString());
     }*/
 
-    private void convertConfigXmlToJson(String paths) throws Exception {
-        String[] parts = paths.split(",");
-        if (parts.length != 2) {
-            System.err.println("Error: --convert-config-xml-to-json requires 
input and output paths separated by comma");
-            System.err.println("Usage: 
--convert-config-xml-to-json=<input.xml>,<output.json>");
+    private void convertConfigXmlToJson(String inputPath) throws Exception {
+        if (inputPath == null || inputPath.trim().isEmpty()) {
+            System.err.println("Error: --convert-config-xml-to-json requires 
an input XML path");
+            System.err.println("Usage: 
--convert-config-xml-to-json=<input.xml> > <output.json>");
             return;
         }
 
-        Path xmlPath = Paths.get(parts[0].trim());
-        Path jsonPath = Paths.get(parts[1].trim());
+        Path xmlPath = Paths.get(inputPath.trim());
 
         if (!Files.exists(xmlPath)) {
             System.err.println("Error: Input XML file not found: " + xmlPath);
             return;
         }

Review Comment:
   Fixed — replaced `Files.exists()` with `Files.isRegularFile()` (which 
handles both the missing-file and the directory cases) and added an explicit 
`Files.isReadable()` check, each with its own error message before opening the 
stream.



##########
tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java:
##########
@@ -771,16 +781,18 @@ private void usage() {
         out.println();
         out.println("    -g  or --gui           Start the Apache Tika GUI");
         out.println();
-        out.println("    --config=<tika-config.xml>");
-        out.println("        TikaConfig file. Must be specified before -g, -s, 
-f or the dump-x-config !");
+        out.println("    --config=<tika-config.json>");
+        out.println("        TikaConfig file (JSON as of Tika 4.x). Must be 
specified before -g, -s or -f !");

Review Comment:
   Confirmed — `-s`/`--server` is explicitly rejected at TikaCLI.java:562 with 
an `IllegalArgumentException` ("no longer supported as of Tika 2.0"), so 
listing it in the usage text was misleading. Removed `-s` from this line; it 
now reads "Must be specified before -g or -f !".





> tika-4.0.0-alpha1 - convert-config-xml-to-json fails if no config specified
> ---------------------------------------------------------------------------
>
>                 Key: TIKA-4734
>                 URL: https://issues.apache.org/jira/browse/TIKA-4734
>             Project: Tika
>          Issue Type: Bug
>    Affects Versions: 4.0.0
>         Environment: Windows 11 with Java 17.
>            Reporter: Adrian Bird
>            Priority: Major
>
> I tried to convert my V3 config.xml files into V4 config.json files and 
> looked at the example in the 
> [documentation|https://tika.apache.org/docs/4.0.0-SNAPSHOT/migration-to-4x/migrating-to-4x.html#_configuration_xml_to_json]
> {code:java}
> java -jar tika-app.jar 
> --convert-config-xml-to-json=tika-config.xml,tika-config.json{code}
> I got this error when trying it with my file:
> {code:java}
> %JAVA_HOME%\bin\java -jar %TIKA_JAR%  
> --convert-config-xml-to-json=tika-exif2-config.xml,tika-exif2-config.json
> Exception in thread "main" org.apache.tika.exception.TikaConfigException: 
> Failed to load config from: 
> --convert-config-xml-to-json=tika-exif2-config.xml,tika-exif2-config.json{code}
> I got it to work if I specified a config file in the command:
> {code:java}
> %JAVA_HOME%\bin\java -jar %TIKA_JAR% -config=config-template.json 
> --convert-config-xml-to-json=tika-exif2-config.xml,tika-exif2-config.json{code}
> *Is it meant to work without a config file?*
> I'll mention something else here, but can create a new Jira if you want. The 
> output from using '–help' contains this line:
> {noformat}
>     --config=<tika-config.xml>{noformat}
> which I assume should be a .json file.
> There is also a 'tika-config.xml' mentioned in the batch help output.
>  
>  
>  
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to