GestoreConsistenzaDati.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.web.ctrlstat.gestori;
import org.slf4j.Logger;
import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
import org.openspcoop2.web.ctrlstat.core.ControlStationLogger;
/**
*
* GestoreConsistenzaDati
*
* @author Andrea Poli (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*
*/
public class GestoreConsistenzaDati implements Runnable {
public static boolean gestoreConsistenzaDatiInEsecuzione = false;
public static boolean gestoreConsistenzaDatiEseguitoConErrore = false;
private Logger log = null;
private boolean initForceMapping;
private boolean stop = false;
public void setStop(boolean stop) {
this.stop = stop;
}
public GestoreConsistenzaDati(boolean initForceMapping) {
this.log = ControlStationLogger.getPddConsoleCoreLogger();
this.initForceMapping = initForceMapping;
}
@Override
public void run() {
if(gestoreConsistenzaDatiInEsecuzione){
this.log.info("Gestore Consistenza Dati risulta già avviato");
return;
}
gestoreConsistenzaDatiInEsecuzione = true;
String statoOperazione = "";
try{
// Controllo inizializzazione risorse
// L'inizializzazione del core attende anche che venga inizializzato il datasource
ControlStationCore core = null;
if(!this.stop){
core = new ControlStationCore();
}
// Mapping Erogazione
if(!this.stop){
statoOperazione = "[Inizializzazione Mapping Erogazione] ";
this.log.debug("Controllo Consistenza Dati Mapping Erogazione-PA ....");
core.initMappingErogazione(this.initForceMapping,this.log);
this.log.debug("Controllo Consistenza Dati Mapping Erogazione-PA completato con successo");
}
// Mapping Fruizione
if(!this.stop){
statoOperazione = "[Inizializzazione Mapping Fruizione] ";
this.log.debug("Controllo Consistenza Dati Mapping Fruizione-PD ....");
core.initMappingFruizione(this.initForceMapping,this.log);
this.log.debug("Controllo Consistenza Dati Mapping Fruizione-PD completato con successo");
}
this.log.info("Attività di Controllo Consistenza Dati completato con successo.");
}catch(Exception e){
gestoreConsistenzaDatiEseguitoConErrore = true;
this.log.error(statoOperazione+e.getMessage(),e);
throw new RuntimeException(e.getMessage(),e);
}finally{
gestoreConsistenzaDatiInEsecuzione = false;
}
}
}