As part of development for GeoMesa, I've found it valuable to have
maintenance and other custom operations available at the accumulo shell.
To support this, I have modified the Shell class to load commands defined
as SPI META-INF/services in jars in $ACCUMULO_HOME/lib/ext.  This allows
developers to create a jar with a file:

META-INF/services/org.apache.accumulo.core.util.shell.Command

which contains one Command per line such as:

geomesa.core.util.shell.ListFeaturesCommand
geomesa.core.util.shell.InitializeFeatureCommand
geomesa.core.util.shell.IngestFeatureCommand
geomesa.core.util.shell.OptimizeIndexCommand
geomesa.core.util.shell.RefreshBoundsCommand

I have put up a branch of the modification here:

https://github.com/ccri/accumulo/tree/extensible_shell

The actual code change is quite minimal but I had to pull the abstract
Command class up into its own file so I could use the ServiceLoader to load
Command resources.

Does this sound like something that could be valuable to others?

Thanks,
Anthony

Reply via email to