ArchiveEngine.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.servlet.archivi;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import org.openspcoop2.core.allarmi.Allarme;
import org.openspcoop2.core.allarmi.AllarmeHistory;
import org.openspcoop2.core.config.Configurazione;
import org.openspcoop2.core.config.ConfigurazioneUrlInvocazione;
import org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola;
import org.openspcoop2.core.config.GenericProperties;
import org.openspcoop2.core.config.PortaApplicativa;
import org.openspcoop2.core.config.PortaDelegata;
import org.openspcoop2.core.config.RegistroPlugin;
import org.openspcoop2.core.config.RegistroPluginArchivio;
import org.openspcoop2.core.config.ServizioApplicativo;
import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
import org.openspcoop2.core.config.driver.db.DriverConfigurazioneDB;
import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
import org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale;
import org.openspcoop2.core.controllo_traffico.ConfigurazionePolicy;
import org.openspcoop2.core.id.IDPortaApplicativa;
import org.openspcoop2.core.id.IDPortaDelegata;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
import org.openspcoop2.core.plugins.Plugin;
import org.openspcoop2.core.registry.AccordoCooperazione;
import org.openspcoop2.core.registry.AccordoServizioParteComune;
import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
import org.openspcoop2.core.registry.Gruppo;
import org.openspcoop2.core.registry.PortaDominio;
import org.openspcoop2.core.registry.Ruolo;
import org.openspcoop2.core.registry.Scope;
import org.openspcoop2.core.registry.Soggetto;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
import org.openspcoop2.core.registry.driver.db.DriverRegistroServiziDB;
import org.openspcoop2.monitor.engine.alarm.AlarmEngineConfig;
import org.openspcoop2.monitor.engine.alarm.utils.AllarmiUtils;
import org.openspcoop2.monitor.engine.alarm.wrapper.ConfigurazioneAllarmeBean;
import org.openspcoop2.protocol.sdk.archive.Archive;
import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCostanti;
import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneUtilities;
import org.slf4j.Logger;
/**
* ArchiveEngine
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class ArchiveEngine extends org.openspcoop2.protocol.engine.archive.AbstractArchiveEngine {
private ArchiviCore archiviCore;
private boolean smista;
private String userLogin;
private AlarmEngineConfig alarmEngineConfig;
private ConfigurazioneCore allarmiConfigurazioneCore;
public ArchiveEngine(DriverRegistroServiziDB driverRegistroServizi,
DriverConfigurazioneDB driverConfigurazione,
org.openspcoop2.core.plugins.dao.jdbc.JDBCServiceManager serviceManagerPlugins,
org.openspcoop2.core.controllo_traffico.dao.jdbc.JDBCServiceManager serviceManagerControlloTraffico,
org.openspcoop2.core.allarmi.dao.jdbc.JDBCServiceManager serviceManagerAllarmi,
ArchiviCore archiviCore,boolean smista,String userLogin) throws Exception {
super(driverRegistroServizi, driverConfigurazione,
serviceManagerPlugins,
serviceManagerControlloTraffico,
serviceManagerAllarmi);
this.archiviCore = archiviCore;
this.smista = smista;
this.userLogin = userLogin;
if(this.archiviCore.isConfigurazioneAllarmiEnabled()) {
this.allarmiConfigurazioneCore = new ConfigurazioneCore(archiviCore);
this.alarmEngineConfig = this.allarmiConfigurazioneCore.getAllarmiConfig();
}
}
// --- Users ---
@Override
public boolean isVisioneOggettiGlobale(String userLogin) {
return this.archiviCore.isVisioneOggettiGlobale(userLogin);
}
// --- PDD ---
@Override
public void createPortaDominio(PortaDominio pdd)
throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, pdd);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updatePortaDominio(PortaDominio pdd)
throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, pdd);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deletePortaDominio(PortaDominio pdd)
throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, pdd);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- GRUPPI ---
@Override
public void createGruppo(Gruppo gruppo) throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, gruppo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateGruppo(Gruppo gruppo) throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, gruppo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteGruppo(Gruppo gruppo) throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, gruppo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- RUOLI ---
@Override
public void createRuolo(Ruolo ruolo) throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, ruolo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateRuolo(Ruolo ruolo) throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, ruolo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteRuolo(Ruolo ruolo) throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, ruolo);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- SCOPE ---
@Override
public void createScope(Scope scope) throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, scope);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateScope(Scope scope) throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, scope);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteScope(Scope scope) throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, scope);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Soggetti Registro ---
@Override
public void createSoggettoRegistro(Soggetto soggetto)
throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateSoggettoRegistro(Soggetto soggetto)
throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteSoggettoRegistro(Soggetto soggetto)
throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Soggetti Configurazione ---
@Override
public void createSoggettoConfigurazione(
org.openspcoop2.core.config.Soggetto soggetto)
throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateSoggettoConfigurazione(
org.openspcoop2.core.config.Soggetto soggetto)
throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteSoggettoConfigurazione(
org.openspcoop2.core.config.Soggetto soggetto)
throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, soggetto);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Servizi Applicativi ---
@Override
public void createServizioApplicativo(
ServizioApplicativo servizioApplicativo)
throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, servizioApplicativo);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateServizioApplicativo(
ServizioApplicativo servizioApplicativo)
throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, servizioApplicativo);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteServizioApplicativo(
ServizioApplicativo servizioApplicativo)
throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, servizioApplicativo);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Accordi di Cooperazione ---
@Override
public void createAccordoCooperazione(
AccordoCooperazione accordoCooperazione)
throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, accordoCooperazione);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateAccordoCooperazione(
AccordoCooperazione accordoCooperazione)
throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, accordoCooperazione);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteAccordoCooperazione(
AccordoCooperazione accordoCooperazione)
throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, accordoCooperazione);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Accordi di Servizio Parte Comune ---
@Override
public void createAccordoServizioParteComune(
AccordoServizioParteComune accordoServizioParteComune)
throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, accordoServizioParteComune);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateAccordoServizioParteComune(
AccordoServizioParteComune accordoServizioParteComune)
throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, accordoServizioParteComune);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteAccordoServizioParteComune(
AccordoServizioParteComune accordoServizioParteComune)
throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, accordoServizioParteComune);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Accordi di Servizio Parte Specifica ---
@Override
public void createAccordoServizioParteSpecifica(
AccordoServizioParteSpecifica accordoServizioParteSpecifica)
throws DriverRegistroServiziException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, accordoServizioParteSpecifica);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void updateAccordoServizioParteSpecifica(
AccordoServizioParteSpecifica accordoServizioParteSpecifica)
throws DriverRegistroServiziException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, accordoServizioParteSpecifica);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteAccordoServizioParteSpecifica(
AccordoServizioParteSpecifica accordoServizioParteSpecifica)
throws DriverRegistroServiziException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, accordoServizioParteSpecifica);
}catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Mapping Erogazione ---
@Override
public void createMappingErogazione(String nome, String descrizione, boolean isDefault, IDServizio idServizio, IDPortaApplicativa idPortaApplicativa) throws DriverRegistroServiziException {
try{
MappingErogazionePortaApplicativa mapping = new MappingErogazionePortaApplicativa();
mapping.setIdServizio(idServizio);
mapping.setIdPortaApplicativa(idPortaApplicativa);
mapping.setNome(nome);
mapping.setDescrizione(descrizione);
mapping.setDefault(isDefault);
this.archiviCore.performCreateOperation(this.userLogin, this.smista, mapping);
}
catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteMappingErogazione(IDServizio idServizio, IDPortaApplicativa idPortaApplicativa) throws DriverRegistroServiziException {
try{
MappingErogazionePortaApplicativa mapping = new MappingErogazionePortaApplicativa();
mapping.setIdServizio(idServizio);
mapping.setIdPortaApplicativa(idPortaApplicativa);
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, mapping);
}
catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Mapping Fruizione ---
@Override
public void createMappingFruizione(String nome, String descrizione, boolean isDefault, IDServizio idServizio, IDSoggetto idFruitore, IDPortaDelegata idPortaDelegata) throws DriverRegistroServiziException {
try{
MappingFruizionePortaDelegata mapping = new MappingFruizionePortaDelegata();
mapping.setIdFruitore(idFruitore);
mapping.setIdServizio(idServizio);
mapping.setIdPortaDelegata(idPortaDelegata);
mapping.setNome(nome);
mapping.setDescrizione(descrizione);
mapping.setDefault(isDefault);
this.archiviCore.performCreateOperation(this.userLogin, this.smista, mapping);
}
catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
@Override
public void deleteMappingFruizione(IDServizio idServizio, IDSoggetto idFruitore, IDPortaDelegata idPortaDelegata) throws DriverRegistroServiziException {
try{
MappingFruizionePortaDelegata mapping = new MappingFruizionePortaDelegata();
mapping.setIdFruitore(idFruitore);
mapping.setIdServizio(idServizio);
mapping.setIdPortaDelegata(idPortaDelegata);
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, mapping);
}
catch(Exception e){
throw new DriverRegistroServiziException(e.getMessage(),e);
}
}
// --- Porte Delegate ---
@Override
public void createPortaDelegata(PortaDelegata portaDelegata)
throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, portaDelegata);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updatePortaDelegata(PortaDelegata portaDelegata)
throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, portaDelegata);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deletePortaDelegata(PortaDelegata portaDelegata)
throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, portaDelegata);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Porte Applicative ---
@Override
public void createPortaApplicativa(PortaApplicativa portaApplicativa)
throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, portaApplicativa);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updatePortaApplicativa(PortaApplicativa portaApplicativa)
throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, portaApplicativa);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deletePortaApplicativa(PortaApplicativa portaApplicativa)
throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, portaApplicativa);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Controllo Traffico (Configurazione) ---
@Override
public void updateControlloTraffico_configurazione(ConfigurazioneGenerale configurazione) throws DriverConfigurazioneException{
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, configurazione);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteControlloTraffico_Configurazione(ConfigurazioneGenerale configurazione) throws DriverConfigurazioneException{
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, configurazione);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Controllo Traffico (ConfigurazionePolicy) ---
@Override
public void createControlloTraffico_configurationPolicy(ConfigurazionePolicy policy) throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateControlloTraffico_configurationPolicy(ConfigurazionePolicy policy) throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteControlloTraffico_configurationPolicy(ConfigurazionePolicy policy) throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Controllo Traffico (AttivazionePolicy) ---
@Override
public void createControlloTraffico_activePolicy(AttivazionePolicy policy, Logger log) throws DriverConfigurazioneException {
updatePosizioneBeforeCreate(policy, log);
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateControlloTraffico_activePolicy(AttivazionePolicy policy) throws DriverConfigurazioneException {
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteControlloTraffico_activePolicy(AttivazionePolicy policy) throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, policy);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Allarmi ---
@Override
public void createAllarme(Allarme allarme, Logger log) throws DriverConfigurazioneException {
try{
this.archiviCore.performCreateOperation(this.userLogin, this.smista, allarme);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
/* ******** GESTIONE AVVIO THREAD NEL CASO DI ATTIVO *************** */
try {
ConfigurazioneAllarmeBean allarmeWrap = this.allarmiConfigurazioneCore.getAllarme(allarme);
AllarmiUtils.notifyStateActiveThread(true, false, false, null, allarmeWrap, log, this.alarmEngineConfig);
} catch(Exception e) {
String errorMsg = MessageFormat.format(ConfigurazioneCostanti.MESSAGGIO_ERRORE_ALLARME_SALVATO_NOTIFICA_FALLITA, allarme.getAlias(),e.getMessage());
log.error(errorMsg, e);
throw new DriverConfigurazioneException(errorMsg, e);
}
}
@Override
public void updateAllarme(Allarme allarme, Logger log) throws DriverConfigurazioneException {
ConfigurazioneAllarmeBean allarmeWrap = null;
ConfigurazioneAllarmeBean oldAllarmeWrap = null;
try {
allarmeWrap = this.allarmiConfigurazioneCore.getAllarme(allarme);
oldAllarmeWrap = this.allarmiConfigurazioneCore.getAllarme(allarme.getId());
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, allarme);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
boolean modificatoInformazioniHistory = false;
// se ho modificato l'abilitato devo registrare la modifica nella tabella history
if(allarme.getEnabled().intValue() != oldAllarmeWrap.getEnabled().intValue()) {
modificatoInformazioniHistory = true;
}
if(modificatoInformazioniHistory && this.alarmEngineConfig.isHistoryEnabled()) {
// registro la modifica
AllarmeHistory history = ConfigurazioneUtilities.createAllarmeHistory(allarme, this.userLogin);
try{
this.allarmiConfigurazioneCore.performCreateOperation(this.userLogin, this.smista, history);
}catch(Throwable e) {
String json = "";
try {
json = history.toJson();
}catch(Throwable t) {}
log.error("Registrazione stato allarme nell'hitstory non riuscita ["+json+"]: "+e.getMessage(),e);
}
}
/* ******** GESTIONE AVVIO THREAD NEL CASO DI ATTIVO *************** */
try {
AllarmiUtils.notifyStateActiveThread(false, false, false, null, allarmeWrap, log, this.alarmEngineConfig);
} catch(Exception e) {
String errorMsg = MessageFormat.format(ConfigurazioneCostanti.MESSAGGIO_ERRORE_ALLARME_SALVATO_NOTIFICA_FALLITA, allarme.getAlias(),e.getMessage());
log.error(errorMsg, e);
throw new DriverConfigurazioneException(errorMsg, e);
}
}
@Override
public void deleteAllarme(Allarme allarme, Logger log) throws DriverConfigurazioneException {
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, allarme);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
/* ******** INVIO NOTIFICHE *************** */
try {
List<String> allarmeList = new ArrayList<>();
allarmeList.add(allarme.getNome());
AllarmiUtils.stopActiveThreads(allarmeList, log, this.alarmEngineConfig);
} catch(Exception e) {
String errorMsg = MessageFormat.format(ConfigurazioneCostanti.MESSAGGIO_ERRORE_ALLARME_SINGOLO_ELIMINATO_NOTIFICA_FALLITA, allarme.getAlias(),e.getMessage());
log.error(errorMsg,e);
throw new DriverConfigurazioneException(errorMsg);
}
}
// --- Token Policy ---
@Override
public void createGenericProperties(GenericProperties gp) throws DriverConfigurazioneException{
try {
this.archiviCore.performCreateOperation(this.userLogin, this.smista, gp);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateGenericProperties(GenericProperties gp) throws DriverConfigurazioneException{
try {
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, gp);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteGenericProperties(GenericProperties gp) throws DriverConfigurazioneException{
try {
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, gp);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// Plugin Classe
@Override
public void createPluginClasse(Plugin plugin) throws DriverConfigurazioneException {
try {
this.archiviCore.performCreateOperation(this.userLogin, this.smista, plugin);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updatePluginClasse(Plugin plugin) throws DriverConfigurazioneException {
try {
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, plugin);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deletePluginClasse(Plugin plugin) throws DriverConfigurazioneException {
try {
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, plugin);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Plugin Archivio ---
private boolean archiviUpdated = false;
@Override
public void createPluginArchivio(RegistroPlugin rp) throws DriverConfigurazioneException{
updatePosizioneBeforeCreate(rp);
updateDate(rp);
try {
this.archiviCore.performCreateOperation(this.userLogin, this.smista, rp);
this.archiviUpdated = true;
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updatePluginArchivio(RegistroPlugin rp) throws DriverConfigurazioneException{
updateDate(rp);
try {
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, rp); // aggiorna solo i dati principali
ConfigurazioneCore confCore = new ConfigurazioneCore(this.archiviCore);
if(rp.sizeArchivioList()>0) {
for (RegistroPluginArchivio rpa : rp.getArchivioList()) {
rpa.setNomePlugin(rp.getNome());
if(confCore.existsRegistroPluginArchivio(rpa.getNomePlugin(), rpa.getNome())){
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, rpa);
}
else {
this.archiviCore.performCreateOperation(this.userLogin, this.smista, rpa);
}
}
}
this.archiviUpdated = true;
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deletePluginArchivio(RegistroPlugin rp) throws DriverConfigurazioneException{
try {
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, rp);
this.archiviUpdated = true;
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Url Invocazione Regole ---
@Override
public void createUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
updatePosizioneBeforeCreate(regola);
try {
this.archiviCore.performCreateOperation(this.userLogin, this.smista, regola);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void updateUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
try {
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, regola);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteUrlInvocazioneRegola(ConfigurazioneUrlInvocazioneRegola regola) throws DriverConfigurazioneException{
try {
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, regola);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Configurazione (Url Invocazione) ---
@Override
public void updateConfigurazione_UrlInvocazione(ConfigurazioneUrlInvocazione configurazione) throws DriverConfigurazioneException{
try {
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, configurazione);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- ConfigurazionePdD ---
@Override
public void updateConfigurazione(Configurazione configurazione) throws DriverConfigurazioneException{
try{
this.archiviCore.performUpdateOperation(this.userLogin, this.smista, configurazione);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
@Override
public void deleteConfigurazione(Configurazione configurazione) throws DriverConfigurazioneException{
try{
this.archiviCore.performDeleteOperation(this.userLogin, this.smista, configurazione);
}catch(Exception e){
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
// --- Finalize ---
@Override
public void finalizeImport(Archive archive) throws DriverConfigurazioneException{
if(this.archiviUpdated) {
// Aggiorno classLoader interno
try {
this.archiviCore.updatePluginClassLoader();
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
}
@Override
public void finalizeDelete(Archive archive) throws DriverConfigurazioneException{
if(this.archiviUpdated) {
// Aggiorno classLoader interno
try {
this.archiviCore.updatePluginClassLoader();
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
}
}