[ 
https://issues.apache.org/jira/browse/TIKA-4598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nicholas DiPiazza updated TIKA-4598:
------------------------------------
    Description: 
h2. Background

Currently tika-pipes-ignite is structured as a PF4J plugin, but it's no longer 
needed as a plugin since:
 * Ignite dependencies are now included directly in tika-grpc
 * IgniteConfigStore is registered as a built-in ConfigStore type
 * The plugin classloader was causing conflicts with Ignite's peer class loading

Would be nice to maybe one day make it a pf4j plugin! But I struggled for a 
weekend to try to make it happen and was stuck with classes not being loaded 
from the pf4j plugin classloader. It may very well be that ignite doesn't work 
within pf4j which makes sense because it is a pretty complex piece of software.
h2. Proposed Changes
 # Move tika-pipes-ignite from {{tika-pipes/tika-pipes-plugins/}} to 
{{tika-pipes/}} as a regular module
 # Remove all PF4J plugin annotations and dependencies (@Extension, etc.)
 # Update module structure to be a standard Maven module at the tika-pipes level
 # Remove plugin.properties and other PF4J metadata
 # Update parent POMs to reflect the new location
 # Ensure IgniteConfigStore remains registered in ConfigStoreFactory as a 
built-in type

h2. Benefits
 * Simpler module structure
 * No classloader conflicts
 * Clearer dependency management
 * Consistent with other ConfigStore implementations (memory, file)

  was:
h2. Background

Currently tika-pipes-ignite is structured as a PF4J plugin, but it's no longer 
needed as a plugin since:
* Ignite dependencies are now included directly in tika-grpc
* IgniteConfigStore is registered as a built-in ConfigStore type
* The plugin classloader was causing conflicts with Ignite's peer class loading

h2. Proposed Changes

# Move tika-pipes-ignite from {{tika-pipes/tika-pipes-plugins/}} to 
{{tika-pipes/}} as a regular module
# Remove all PF4J plugin annotations and dependencies (@Extension, etc.)
# Update module structure to be a standard Maven module at the tika-pipes level
# Remove plugin.properties and other PF4J metadata
# Update parent POMs to reflect the new location
# Ensure IgniteConfigStore remains registered in ConfigStoreFactory as a 
built-in type

h2. Benefits

* Simpler module structure
* No classloader conflicts
* Clearer dependency management
* Consistent with other ConfigStore implementations (memory, file)



> Remove plugin architecture from tika-pipes-ignite and move to tika-pipes level
> ------------------------------------------------------------------------------
>
>                 Key: TIKA-4598
>                 URL: https://issues.apache.org/jira/browse/TIKA-4598
>             Project: Tika
>          Issue Type: Task
>            Reporter: Nicholas DiPiazza
>            Assignee: Nicholas DiPiazza
>            Priority: Major
>
> h2. Background
> Currently tika-pipes-ignite is structured as a PF4J plugin, but it's no 
> longer needed as a plugin since:
>  * Ignite dependencies are now included directly in tika-grpc
>  * IgniteConfigStore is registered as a built-in ConfigStore type
>  * The plugin classloader was causing conflicts with Ignite's peer class 
> loading
> Would be nice to maybe one day make it a pf4j plugin! But I struggled for a 
> weekend to try to make it happen and was stuck with classes not being loaded 
> from the pf4j plugin classloader. It may very well be that ignite doesn't 
> work within pf4j which makes sense because it is a pretty complex piece of 
> software.
> h2. Proposed Changes
>  # Move tika-pipes-ignite from {{tika-pipes/tika-pipes-plugins/}} to 
> {{tika-pipes/}} as a regular module
>  # Remove all PF4J plugin annotations and dependencies (@Extension, etc.)
>  # Update module structure to be a standard Maven module at the tika-pipes 
> level
>  # Remove plugin.properties and other PF4J metadata
>  # Update parent POMs to reflect the new location
>  # Ensure IgniteConfigStore remains registered in ConfigStoreFactory as a 
> built-in type
> h2. Benefits
>  * Simpler module structure
>  * No classloader conflicts
>  * Clearer dependency management
>  * Consistent with other ConfigStore implementations (memory, file)



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

Reply via email to