A Java application must send commands to Geomesa-Accumulo. Currently, this is made possible through ssh commands that the Java application sends to Geomesa to ingest data. This mechanism should be changed to using the API provided by Geomesa to be used directly in the Java code. However, upon reading the official Geomesa documentation, I note that these APIs are documented up to version 2.0.2 and the examples given do not work for the current version, i.e., 4.0.4. I would like to know if these APIs still exist in Geomesa and if it is still possible to use them, or do you have to go another route to ingest the data from Java.
In practice, currently, this command is sent in ssh mode via Java code to the shell of the Docker container where Geomesa is installed
geomesa-accumulo ingest --force -i accumulo -z zookeeper -u root -p GisPwd -c example -f example example.shp
Is it possible to perform the same ingestion operation via the Java API, without using ssh mode?
It's not clear exactly what API you're referring to that no longer exists, but GeoMesa has always implemented the GeoTools API. The documentation has a section on how to obtain a connection, then read and write data using Java.
Edit: for the particular example you're asking about, you would use a GeoTools Shapefile data store to read your input as
SimpleFeatures(some examples here), then you could write them to GeoMesa. The original link above shows how to do that by reading and writing usingDataStores(whether a Shapefile data store or a GeoMesa data store shouldn't matter).