Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
Java 6, Tomcat 6
Description
The EventListener plugin for notification of start / end import events (SOLR-938) creates an instance of EventListener before every notification. This has 2 drawbacks.
- No state is stored between successive invocations of events as it is a new object
- When writing plugins for delta imports - it is very inefficient to do a class loader lookup by reflection / instantiate an instance and call a method on the same.
Attached patch has one EventListener through the lifetime of the DIH plugin .
Also EventListener is changed to an interface rather than an abstract class for better decoupling (especially painful when the start/end eventlistener has an independent hierarchy by itself ).
By default, a no-op listener is registered to avoid boiler plate code to check if there is a start / end listener specified. Efficient JRE impls should be able to optimize the no-op for minimum overhead compared to checking the reference for null and branching out.
Specifying an onImportStart / onImportEnd overrides the default handler though.
Attachments
Attachments
Issue Links
- is related to
-
SOLR-938 DataImportHandler: Add close hooks to the completion of a full-import process
- Closed
-
SOLR-935 DataImportHandler: Add logging to record failure to acquire lock by DataImporter for a given request
- Resolved
- relates to
-
SOLR-988 Add a new scope for DIH session to store objects across imports
- Closed