org.dspace.app.cris.statistics.CrisSolrLogger.java Source code

Java tutorial

Introduction

Here is the source code for org.dspace.app.cris.statistics.CrisSolrLogger.java

Source

/**
 * 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
 *
 * https://github.com/CILEA/dspace-cris/wiki/License
 */
package org.dspace.app.cris.statistics;

import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
import org.dspace.app.cris.model.CrisConstants;
import org.dspace.statistics.SolrLogger;

/**
 * This class is mainly a copy and paste of the org.dspace.statistics.SolrLogger class used to manage logging 
 * of access to Researcher Page objects.
 * 
 * Static SolrLogger used to hold HttpSolrClient connection pool to issue
 * usage logging events to Solr from DSpace libraries.
 * 
 * @author pascarelli, bollini
 */
public class CrisSolrLogger extends SolrLogger {

    private static Logger log = Logger.getLogger(CrisSolrLogger.class);

    @Override
    public SolrDocumentList getRawData(int type) throws SolrServerException {

        if (type >= CrisConstants.CRIS_TYPE_ID_START) {

            SolrQuery query = new SolrQuery();
            query.setQuery("*:*");
            query.setFilterQueries("type:" + type);
            query.setRows(Integer.MAX_VALUE);
            query.setFields("ip", "id", "sectionid", "type", "time", "dns", "epersonid", "isBot", "userAgent");
            QueryResponse resp = getSolr().query(query);
            return resp.getResults();

        } else {
            return super.getRawData(type);
        }

    }

}