Summary
Remove dependencies on non-public Accumulo APIs in ScannerBaseDelegate.
Non-Public Classes
org.apache.accumulo.core.clientImpl.ScannerOptions
org.apache.accumulo.core.dataImpl.thrift.IterInfo
Solution
Track iterator names locally instead of introspecting the delegate via non-public APIs:
- Add
systemIteratorNames and userIteratorNames Sets
- Update add/remove methods to maintain the local tracking sets
- Simplify
clearScanIterators() to iterate over tracked names
- Remove
ScannerOptionsHelper inner class
Files Affected
core/utils/accumulo-utils/src/main/java/datawave/webservice/common/connection/ScannerBaseDelegate.java
Part of #2443