[
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)