There are a few issues, detailed below:
a. The generated configuration files contain references to GC
params that are specific to Sun JVM. In accumulo-env.sh, the
ACCUMULO_TSERVER_OPTS contains -XX:NewSize and -XX:MaxNewSize , and also in ACCUMULO_GENERAL_OPTS,
-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 are used.
b. in bin/accumulo, get ClassNotFoundException due to
specification of JAXP Doc Builder:
The Sun implementation of Document Builder Factory does not exists
in IBM JDK, so a ClassNotFoundException is thrown on running accumulo
c. MiniAccumuloCluster - in the MiniAccumuloClusterImpl,
Sun-speciifc GC params are passed as params to the java process (similar
to section a. )
Single proposal for solving all 3 issues:
Enhance bootstrap_config.sh with request to select Java vendor.
Selecting this will set correct values for GC params (they differ between
IBM and Sun), inclusion/ommision of JAXP setting. The
MiniAccumuloClusterImpl can read the same env variable that was set in
code for the GC Params, and use in the exec command.
For exampel, doing this will result in CMS settings existing for SUN JVM, but when using IBM JVM, the relevant GC parameter for IBM JVM will be used instead. In addition, the SUN JAXP implementation will be omitted on non-SUN JVM.
For now, I plan on having 4 options in new question