/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.statistics.service; import org.dspace.content.DSpaceObject; import org.dspace.eperson.EPerson; import org.elasticsearch.client.Client; import org.elasticsearch.common.xcontent.XContentBuilder; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; /** * Service interface class for the Elastic Search logging. * The implementation of this class is responsible for all business logic calls for the Elastic Search logging and is autowired by Spring. * * @deprecated As of DSpace 6.0, ElasticSearch statistics are replaced by Solr statistics. * @see org.dspace.statistics.service.SolrLoggerService * * @author kevinvandevelde at atmire.com */ public interface ElasticSearchLoggerService { public static enum ClientType { NODE, LOCAL, TRANSPORT } public void post(DSpaceObject dspaceObject, HttpServletRequest request, EPerson currentUser); public void post(DSpaceObject dspaceObject, String ip, String userAgent, String xforwardedfor, EPerson currentUser); public void buildParents(DSpaceObject dso, HashMap<String, ArrayList<String>> parents) throws SQLException; public HashMap<String, ArrayList<String>> getParents(DSpaceObject dso) throws SQLException; public String getClusterName(); public void setClusterName(String clusterName); public String getIndexName(); public void setIndexName(String indexName); public String getIndexType(); public void setIndexType(String indexType); public String getAddress(); public void setAddress(String address); public int getPort(); public void setPort(int port); public void storeParents(XContentBuilder docBuilder, HashMap<String, ArrayList<String>> parents) throws IOException; public boolean isUseProxies(); public void createTransportClient(); public Client getClient(); public Client getClient(ClientType clientType); // Node Client will discover other ES nodes running in local JVM public Client createNodeClient(ClientType clientType); public String getConfigurationStringWithFallBack(String module, String configurationKey, String defaultFallbackValue); }