it.tai.solr.services.impl.SolrSummaryServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for it.tai.solr.services.impl.SolrSummaryServiceImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package it.tai.solr.services.impl;

import it.tai.solr.dao.ProbeDAO;
import it.tai.solr.dao.entities.SolrSummaryEntity;
import it.tai.solr.data.SolrResponse;
import it.tai.solr.services.SolrSummaryService;
import java.util.List;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

/**
 *
 * @author francesco
 */
public class SolrSummaryServiceImpl implements SolrSummaryService {

    private static final Logger logger = LoggerFactory.getLogger(SolrSummaryServiceImpl.class);

    private ProbeDAO probeDAO;

    private String days;

    private MailSender mailSender;

    private SimpleMailMessage warningSolrMessage;

    @Override
    public SolrSummaryEntity findById(long id) {
        return probeDAO.findById(id);
    }

    @Override
    public List<SolrSummaryEntity> findAll() {
        return probeDAO.findAll();
    }

    @Override
    public void save(SolrResponse solrResponse) {
        probeDAO.save(solrResponse.toSolrSummaryEntity(solrResponse));
    }

    @Override
    public void update(SolrResponse solrResponse) {
        probeDAO.update(solrResponse.toSolrSummaryEntity(solrResponse));
    }

    @Override
    public void delete(SolrResponse solrResponse) {
        probeDAO.delete(solrResponse.toSolrSummaryEntity(solrResponse));
    }

    @Override
    public void shutdown() {
        probeDAO.shutdown();
    }

    @Override
    public void checkLastEntry() {

        SolrSummaryEntity entry = probeDAO.getLastEntry();

        DateTime solrOpenedAt = new DateTime(entry.getOpenedAt().getTime());

        int diff = Days.daysBetween(solrOpenedAt, DateTime.now()).getDays();

        if (logger.isDebugEnabled()) {
            logger.debug(entry.toString());
        }

        if (diff >= Integer.valueOf(days)) {
            if (logger.isDebugEnabled()) {
                logger.debug("Exceeded threshold between last SOLR opened at date");
            }

            sendPreConfiguredMail("Last opened at SOLR entry " + solrOpenedAt, warningSolrMessage);
        }

    }

    private void sendPreConfiguredMail(String message, SimpleMailMessage simpleMailMessage) {
        SimpleMailMessage mailMessage = new SimpleMailMessage(simpleMailMessage);
        mailMessage.setText(message);
        mailSender.send(mailMessage);
    }

    /**
     * @param probeDAO the probeDAO to set
     */
    public void setProbeDAO(ProbeDAO probeDAO) {
        this.probeDAO = probeDAO;
    }

    /**
     * @param days the days to set
     */
    public void setDays(String days) {
        this.days = days;
    }

    /**
     * @param mailSender the mailSender to set
     */
    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }

    /**
     * @param warningSolrMessage the warningSolrMessage to set
     */
    public void setWarningSolrMessage(SimpleMailMessage warningSolrMessage) {
        this.warningSolrMessage = warningSolrMessage;
    }

}