bamaer opened a new issue, #9084:
URL: https://github.com/apache/hop/issues/9084

   ### Apache Hop version?
   
   2.20.0-SNAPSHOT
   
   ### Java version?
   
   21
   
   ### Operating system
   
   Linux
   
   ### What happened?
   
   ### Apache Hop version?
   
   2.20.0
   
   ### What happened?
   
   A PDI transformation with a CSV file input transform stores the type as 
`CsvInput`. The Hop plugin id is `CSVInput`. The Kettle importer copies the 
type unchanged, so the imported `.hpl` contains `<type>CsvInput</type>`.
   
   The pipeline runs, and the transform dialog opens as CSV file input. On the 
pipeline canvas, the transform is drawn with the missing-plugin (warning 
triangle) icon. Changing the type to `CSVInput` in the XML shows the correct 
icon.
   
   ### Cause
   
   - Plugin lookup ignores case: `PluginRegistry.getPlugin()` → 
`Plugin.matches()` → `Const.indexOfString()` uses `equalsIgnoreCase`.
   - Icon lookup does not: `GuiResource.loadTransformImages()` stores icons in 
a `Hashtable` keyed by `plugin.getIds()[0]`, and 
`GuiResource.getSwtImageTransform(pluginId)` calls `get()` with the id from the 
file.
   - Before #5142 (2.13.0), a failed lookup drew no icon. Since then it falls 
back to `getSwtImageMissing()`, so the mismatch shows as a missing plugin.
   
   Any transform whose id in a file differs from the registered id only by case 
is affected, not only CSV file input.
   
   ### Steps to reproduce
   
   1. Create a PDI transformation with a CSV file input transform 
(`<type>CsvInput</type>`).
   2. Import it with the Kettle importer.
   3. Open the imported pipeline in Hop GUI.
   
   ### Expected
   
   The CSV file input icon.
   
   ### Suggested fix
   
   - `GuiResource.getSwtImageTransform()`: resolve the plugin through 
`PluginRegistry` and look up the icon by its registered id, or key the icon map 
case-insensitively. The same applies to `getSwtImageAction()`.
   - `KettleImport`: rename `CsvInput` to `CSVInput` so imported files carry 
the Hop plugin id.
   
   
   ### Issue Priority
   
   Priority: 2
   
   ### Issue Component
   
   Component: Import


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to