ctubbsii opened a new issue, #3377:
URL: https://github.com/apache/accumulo/issues/3377
**Describe the bug**
The SPI reference implementation class,
`org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner` exposes an
inner class named `ExecutorConfig` as public, even though it is only used for
implementation inside the outer class. This can be private, just like the other
inner class named `Executor`. It also exposes several static methods,
`findMaximalRequiredSetToCompact`, `findMapFilesToCompact`, and
`sortByFileSize`, which are also public. The second of these three is used in
the test and can be package-private, but the other two can just be private.
**Versions (OS, Maven, Java, and others, as appropriate):**
- Affected version(s) of this project: 2.1.0 (new class in 2.1.0)
**Additional context**
Since this class is SPI, and newly introduced in 2.1.0, and the methods are
specific to this class' implementation, it seems to me that there is very
little risk in fixing these for 2.1.1 without any deprecation (deprecation is
not required, as SPI is not considered public API, but it is nevertheless worth
considering the risk before making the change to SPI)
Possible additional change: give this SPI reference implementation class a
name better than "DefaultCompactionPlanner". It's only default when it's
configured to be... if it's ever changed, the name "Default" will be
confusingly incorrect. The name should reflect the basic strategy it employs
for planning. If the strategy is difficult to name, even calling it
"BasicCompactionPlanner" would be better than "DefaultCompactionPlanner", as
that name is future-proof against changes to the default configuration.
--
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]