Monitor.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.monitor;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.openspcoop2.core.commons.Liste;
import org.openspcoop2.core.config.PortaApplicativa;
import org.openspcoop2.core.config.PortaApplicativaServizioApplicativo;
import org.openspcoop2.core.config.ServizioApplicativo;
import org.openspcoop2.core.config.constants.CostantiConfigurazione;
import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
import org.openspcoop2.core.id.IDPortaApplicativa;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDServizioApplicativo;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.constants.PddTipologia;
import org.openspcoop2.core.registry.driver.IDServizioFactory;
import org.openspcoop2.message.constants.ServiceBinding;
import org.openspcoop2.pdd.core.GestoreMessaggi;
import org.openspcoop2.pdd.monitor.Busta;
import org.openspcoop2.pdd.monitor.BustaServizio;
import org.openspcoop2.pdd.monitor.BustaSoggetto;
import org.openspcoop2.pdd.monitor.Dettaglio;
import org.openspcoop2.pdd.monitor.Messaggio;
import org.openspcoop2.pdd.monitor.ServizioApplicativoConsegna;
import org.openspcoop2.pdd.monitor.StatoPdd;
import org.openspcoop2.pdd.monitor.constants.StatoMessaggio;
import org.openspcoop2.pdd.monitor.driver.DriverMonitoraggio;
import org.openspcoop2.pdd.monitor.driver.FilterSearch;
import org.openspcoop2.pdd.monitor.driver.FiltroStatoConsegnaAsincrona;
import org.openspcoop2.pdd.monitor.driver.StatoConsegnaAsincrona;
import org.openspcoop2.pdd.monitor.driver.StatoConsegneAsincrone;
import org.openspcoop2.pdd.timers.TimerConsegnaContenutiApplicativiThread;
import org.openspcoop2.utils.Utilities;
import org.openspcoop2.utils.date.DateUtils;
import org.openspcoop2.web.ctrlstat.config.ConsoleProperties;
import org.openspcoop2.web.ctrlstat.config.DatasourceProperties;
import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
import org.openspcoop2.web.ctrlstat.core.ControlStationLogger;
import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
import org.openspcoop2.web.ctrlstat.dao.PdDControlStation;
import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
import org.openspcoop2.web.ctrlstat.servlet.pa.PorteApplicativeCore;
import org.openspcoop2.web.ctrlstat.servlet.pdd.PddCore;
import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCore;
import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCostanti;
import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
import org.openspcoop2.web.lib.audit.appender.AuditDisabilitatoException;
import org.openspcoop2.web.lib.audit.appender.IDOperazione;
import org.openspcoop2.web.lib.audit.log.constants.Tipologia;
import org.openspcoop2.web.lib.mvc.AreaBottoni;
import org.openspcoop2.web.lib.mvc.Costanti;
import org.openspcoop2.web.lib.mvc.DataElement;
import org.openspcoop2.web.lib.mvc.DataElementType;
import org.openspcoop2.web.lib.mvc.GeneralData;
import org.openspcoop2.web.lib.mvc.GeneralLink;
import org.openspcoop2.web.lib.mvc.PageData;
import org.openspcoop2.web.lib.mvc.Parameter;
import org.openspcoop2.web.lib.mvc.ServletUtils;
/**
*
* Servlet per la gestione del monitoraggio applicativo
*
*
* @author Andrea Poli (apoli@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author Sandra Giangrandi (sandra@link.it)
* @author $Author$
* @version $Rev$, $Date$
*
*/
public final class Monitor extends Action {
// Driver Monitoraggio
private static Boolean initialized = null;
protected static MonitorCore monitorCore = null;
protected static PddCore pddCore = null;
protected static Boolean singlePdD = false;
protected static ConsoleProperties consoleProperties = null;
/** Locale */
protected static Map<String, DriverMonitoraggio> driverMonitoraggioLocale = null;
protected static List<String> sorgentiDriverMonitoraggioLocale = null;
protected static List<String> labelSorgentiDriverMonitoraggioLocale = null;
/**
* Inizializza il driver di monitoraggio.
*
* @throws Exception
*/
private static synchronized void initMonitoraggio() throws Exception {
if (Monitor.initialized == null) {
// core
monitorCore = new MonitorCore();
pddCore = new PddCore(monitorCore);
if(monitorCore.isSinglePdD()){
// Inizializzazione locale
DatasourceProperties datasourceProperties = null;
try {
datasourceProperties = DatasourceProperties.getInstance();
sorgentiDriverMonitoraggioLocale = datasourceProperties.getSinglePddMonitorSorgentiDati();
if(sorgentiDriverMonitoraggioLocale==null || sorgentiDriverMonitoraggioLocale.isEmpty()) {
throw new Exception("Nessuna sorgente dati definita");
}
} catch (java.lang.Exception e) {
ControlStationLogger.getPddConsoleCoreLogger().error("[govwayConsole] Lettura proprieta' non riuscita : " + e.getMessage());
throw new Exception("[govwayConsole] Lettura proprieta' non riuscita : " + e.getMessage());
}
labelSorgentiDriverMonitoraggioLocale = new ArrayList<>();
driverMonitoraggioLocale = new HashMap<>();
for (String sorgente : sorgentiDriverMonitoraggioLocale) {
String label = null;
String jndiName = "";
Properties jndiProp = null;
String tipoDatabase = null;
try {
label = datasourceProperties.getSinglePddMonitorLabel(sorgente);
jndiName = datasourceProperties.getSinglePddMonitorDataSource(sorgente);
jndiProp = datasourceProperties.getSinglePddMonitorDataSourceContext(sorgente);
tipoDatabase = datasourceProperties.getSinglePddMonitorTipoDatabase(sorgente);
} catch (java.lang.Exception e) {
ControlStationLogger.getPddConsoleCoreLogger().error("[govwayConsole] Lettura proprieta' non riuscita per la sorgente dati '"+sorgente+"' : " + e.getMessage());
throw new Exception("[govwayConsole] Lettura proprieta' non riuscita per la sorgente dati '"+sorgente+"' : " + e.getMessage());
}
try {
labelSorgentiDriverMonitoraggioLocale.add(label);
Monitor.driverMonitoraggioLocale.put(sorgente, new DriverMonitoraggio(jndiName, tipoDatabase, jndiProp));
} catch (java.lang.Exception e) {
ControlStationLogger.getPddConsoleCoreLogger().error("[govwayConsole] Inizializzazione DriverMonitoraggio non riuscita per la sorgente dati '"+sorgente+"' : " + e.getMessage());
throw new Exception("[govwayConsole] Inizializzazione DriverMonitoraggio non riuscita per la sorgente dati '"+sorgente+"' : " + e.getMessage());
}
}
}
singlePdD = monitorCore.isSinglePdD();
consoleProperties = ConsoleProperties.getInstance();
// inizializzato
initialized = true;
}
}
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession(true);
// Salvo il vecchio PageData
PageData pdold = ServletUtils.getPageDataFromSession(request, session);
// Inizializzo PageData
PageData pd = new PageData();
GeneralHelper generalHelper = new GeneralHelper(session);
// Inizializzo GeneralData
GeneralData gd = generalHelper.initGeneralData(request);
String userLogin = ServletUtils.getUserLoginFromSession(session);
// Inizializzo driver
if (Monitor.initialized == null) {
Monitor.initMonitoraggio();
}
MonitorHelper monitorHelper = null;
try {
MonitorCore monitorCore = new MonitorCore();
monitorHelper = new MonitorHelper(request, pd, session);
ArrayList<String> errors = new ArrayList<>();
String metodo = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD);
String ns = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH);
String[] tipoProfcoll = MonitorCostanti.getDefaultValuesParametroTipoProfiloCollaborazione();
String actionConfirm = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_ACTION_CONFIRM);
if (monitorHelper.isEditModeInProgress() && (metodo == null || !metodo.equals(MonitorCostanti.DEFAULT_VALUE_FORM_BEAN_METHOD_DETAILS))&&
actionConfirm == null && (ns == null || !ns.equals(MonitorCostanti.DEFAULT_VALUE_FALSE) )) {
// prima volta che accedo quindi show form
// recupero eventuali parametri nella request
MonitorFormBean mb = this.getBeanForm(errors, monitorHelper);
this.showForm(request, session, monitorHelper, pd, tipoProfcoll, MonitorMethods.getMethodsNames(), "", "", mb, monitorCore);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeInProgress(mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR
);
}
String pageSize = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_PAGE_SIZE);
// se pageSize settato allora vuol dire che sono in una richiesta di
// nextPage
// altrimenti prima richiesta
// se actionConfirm settato, significa che ho chiesto e
// confermato l'eliminazione delle richieste pendenti
// recupero i dati inseriti dall'utente nel form
MonitorFormBean formBean = null;
if (((pageSize == null) || pageSize.equals("")) &&
actionConfirm == null) {
formBean = this.getBeanForm(errors, monitorHelper);
} else {
// prendo il form dalla sessione xe' salvato precedentemente
formBean = ServletUtils.getObjectFromSession(request, session, MonitorFormBean.class, MonitorCostanti.SESSION_ATTRIBUTE_FORM_BEAN);
errors.add("Dati form non validi. I dati non sono presenti in sessione.");
}
// se form non valido rimando all'inserimento dati
if (formBean == null) {
// eventuali messaggi di errore nel pd
String errMsg = "";
Iterator<String> it = errors.listIterator();
while (it.hasNext()) {
String err = it.next();
errMsg += err + "<br>";
}
pd.setMessage(errMsg);
// return mapping.findForward("MonitorForm");
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeInProgress(mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
}
// controllo se visualizzazione dettaglio messaggio
if (formBean.getMethod().equals(MonitorCostanti.DEFAULT_VALUE_FORM_BEAN_METHOD_DETAILS)) {
MonitorFormBean oldFormBeanRicerca = ServletUtils.getObjectFromSession(request, session, MonitorFormBean.class, MonitorCostanti.SESSION_ATTRIBUTE_FORM_BEAN);
String idMessaggio = formBean.getIdMessaggio();
FilterSearch filter = new FilterSearch();
filter.setIdMessaggio(idMessaggio);
filter.setBusta(new Busta());
filter.setTipo(formBean.getTipo());
ControlStationCore core = new ControlStationCore();
SoggettiCore soggettiCore = new SoggettiCore(core);
List<BustaSoggetto> filtroSoggetti = null;
if(core.isVisioneOggettiGlobale(userLogin)==false){
List<IDSoggetto> filtroIds = soggettiCore.getSoggettiWithSuperuser(userLogin);
filtroSoggetti = new ArrayList<BustaSoggetto>();
for (IDSoggetto idSoggetto : filtroIds) {
BustaSoggetto sog = new BustaSoggetto();
sog.setTipo(idSoggetto.getTipo());
sog.setNome(idSoggetto.getNome());
filtroSoggetti.add(sog);
}
}
filter.setSoggettoList(filtroSoggetti);
// prima richiesta con protocollo
long countMessaggi = MonitorUtilities.countListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
List<Messaggio> listaMessaggi = MonitorUtilities.getListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
if (countMessaggi > 0) {
Messaggio messaggio = listaMessaggi.get(0);
// visualizzo dettagli messaggio
this.showDettagliMessaggio(pd, monitorHelper, messaggio, oldFormBeanRicerca);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeFinished(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR_DETTAGLI);
// return mapping.findForward("DettagliOk");
} else {
// seconda richiesta senza protocollo (NOTA: se l'utente ha visibilita locale, questi msg non li vedra' mai)
// Solo l'amministratore con visibilita' globale li puo' vedere.
filter.setBusta(null);
countMessaggi = MonitorUtilities.countListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
listaMessaggi = MonitorUtilities.getListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
if (countMessaggi > 0) {
Messaggio messaggio = listaMessaggi.get(0);
// visualizzo dettagli messaggio
this.showDettagliMessaggio(pd, monitorHelper, messaggio, oldFormBeanRicerca);
// return mapping.findForward("DettagliOk");
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeFinished(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR_DETTAGLI);
} else {
// non ho trovato messaggi
pd.setMessage("Il messaggio [" + formBean.getIdMessaggio() + "] non e' piu presente. Impossibile visualizzare il dettaglio.");
// rinvio alla visulizzazione del form in quanto il
// messaggio non e' piu presente
this.showForm(request, session, monitorHelper, pd, tipoProfcoll, MonitorMethods.getMethodsNames(), "", "", formBean, monitorCore);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeInProgress(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR_DETTAGLI);
// return mapping.findForward("MonitorForm");
}
}
}
// controllo se cancellazione messaggio
String objToRemove = monitorHelper.getParameter(Costanti.PARAMETER_NAME_OBJECTS_FOR_REMOVE);
String objToRemoveType = monitorHelper.getParameter(Costanti.PARAMETER_NAME_OBJECTS_FOR_REMOVE_TYPE);
//String action = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_ACTION);
if (objToRemove != null) {
// if ((action != null) && action.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_MONITOR_ACTION_DELETE)) {
FilterSearch filter = new FilterSearch();
ControlStationCore core = new ControlStationCore();
SoggettiCore soggettiCore = new SoggettiCore(core);
List<BustaSoggetto> filtroSoggetti = null;
if(core.isVisioneOggettiGlobale(userLogin)==false){
List<IDSoggetto> filtroIds = soggettiCore.getSoggettiWithSuperuser(userLogin);
filtroSoggetti = new ArrayList<BustaSoggetto>();
for (IDSoggetto idSoggetto : filtroIds) {
BustaSoggetto sog = new BustaSoggetto();
sog.setTipo(idSoggetto.getTipo());
sog.setNome(idSoggetto.getNome());
filtroSoggetti.add(sog);
}
}
filter.setSoggettoList(filtroSoggetti);
// Elimino i soggetti dal db
StringTokenizer objTok = new StringTokenizer(objToRemove, ",");
int[] idToRemove = new int[objTok.countTokens()];
Tipologia tipoOperazione = Tipologia.DEL;
//System.out.println("tIPOOO '"+objToRemoveType+"'");
if(objToRemoveType!=null && MonitorCostanti.ACTION_RICONSEGNA_IMMEDIATA.equals(objToRemoveType)) {
tipoOperazione = Tipologia.CHANGE;
}
long n = 0;
long nError = 0;
int k = 0;
while (objTok.hasMoreElements()) {
idToRemove[k++] = Integer.parseInt(objTok.nextToken());
}
@SuppressWarnings("unused")
String msgKO = "Impossibile cancellare Messaggio: <br>";
@SuppressWarnings("unused")
String msgOK = "Cancellato Messaggio : <br>";
for (int i = 0; i < idToRemove.length; i++) {
List<?> dataElements = (List<?>) pdold.getDati().get(idToRemove[i]);
// ID PARAMETRO_MONITOR_ID_MESSAGGIO alla posizione 2
DataElement de = (DataElement) dataElements.get(1);
String idMessaggio = de.getValue();
filter.setIdMessaggio(idMessaggio);
// TIPO (inbox/outbox) PARAMETRO_MONITOR_TIPO alla posizione 3
de = (DataElement) dataElements.get(2);
String tipo = de.getValue();
filter.setTipo(tipo);
IDOperazione [] idOperazione = null;
boolean auditDisabiltato = false;
try{
idOperazione = core.performAuditRequest(new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}catch(AuditDisabilitatoException disabilitato){
auditDisabiltato = true;
}
try{
if(Tipologia.CHANGE.equals(tipoOperazione)) {
long changeReali = MonitorUtilities.aggiornaDataRispedizioneRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
if(changeReali>0) {
n = n + changeReali;
}
}
else {
long deleteReali =MonitorUtilities.deleteRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
if(deleteReali>0) {
n = n + deleteReali;
}
}
if (n > 0) {
msgOK += " -" + idMessaggio + "<br>";
} else {
msgKO += " - " + idMessaggio + "<br>";
}
if(!auditDisabiltato){
core.performAuditComplete(idOperazione, new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}
}catch(Exception e){
nError++;
if(!auditDisabiltato){
core.performAuditError(idOperazione, e.getMessage(), new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}
msgKO += " - " + idMessaggio + "<br>";
continue;
}
}
if(Tipologia.CHANGE.equals(tipoOperazione)) {
pd.setMessage("Aggiornata la data di rispedizione di " + n + " messaggi"+(n==1?"o":"") +
(nError>0 ? "<br>L'aggiornamento è fallito per "+nError+" messaggi"+(nError==1?"o":"") : ""),
nError>0 ? Costanti.MESSAGE_TYPE_ERROR : Costanti.MESSAGE_TYPE_INFO);
}
else {
pd.setMessage("Eliminat"+(n==1?"o":"i")+" " + n + " messaggi"+(n==1?"o":"") +
(nError>0 ? "<br>L'eliminazione è fallita per "+nError+" messaggi"+(nError==1?"o":"") : ""),
nError>0 ? Costanti.MESSAGE_TYPE_ERROR : Costanti.MESSAGE_TYPE_INFO);
}
}
// richiedo l'azione al ws
FilterSearch filter = new FilterSearch();
FiltroStatoConsegnaAsincrona filterConsegnaAsincrona = new FiltroStatoConsegnaAsincrona();
if(formBean.getOrderByConsegnaAsincrona()!=null) {
if(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA.equals(formBean.getOrderByConsegnaAsincrona())) {
filterConsegnaAsincrona.setOrderByInCoda(true);
}
else if(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_RICONSEGNA.equals(formBean.getOrderByConsegnaAsincrona())) {
filterConsegnaAsincrona.setOrderByInRiconsegna(true);
}
else if(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_MESSAGE_BOX.equals(formBean.getOrderByConsegnaAsincrona())) {
filterConsegnaAsincrona.setOrderByInMessageBox(true);
}
}
BustaSoggetto mittente = formBean.getMittente();
BustaSoggetto destinatario = formBean.getDestinatario();
BustaServizio servizio = formBean.getServizio();
String azione = formBean.getAzione();
String profilo = formBean.getProfiloCollaborazione();
boolean riscontro = formBean.isRiscontro();
Busta busta = null;
if ((mittente != null) || (destinatario != null) || (servizio != null) || (azione != null) || (profilo != null) || riscontro) {
busta = new Busta();
busta.setMittente(mittente);
busta.setDestinatario(destinatario);
busta.setAzione(azione);
busta.setProfiloCollaborazione(profilo);
busta.setServizio(servizio);
busta.setAttesaRiscontro(riscontro);
filter.setBusta(busta);
}
// setto gli altri filtri
filter.setMessagePattern(formBean.getMessagePattern());
filter.setIdMessaggio(formBean.getIdMessaggio());
if(formBean.getSoglia()>0)
filter.setSoglia(formBean.getSoglia());
if(formBean.getStato()!=null)
filter.setStato(org.openspcoop2.pdd.monitor.constants.StatoMessaggio.toEnumConstant(formBean.getStato()));
filter.setCorrelazioneApplicativa(formBean.getCorrelazioneApplicativa());
ControlStationCore core = new ControlStationCore();
SoggettiCore soggettiCore = new SoggettiCore(core);
List<BustaSoggetto> filtroSoggetti = null;
if(core.isVisioneOggettiGlobale(userLogin)==false){
List<IDSoggetto> filtroIds = soggettiCore.getSoggettiWithSuperuser(userLogin);
filtroSoggetti = new ArrayList<BustaSoggetto>();
for (IDSoggetto idSoggetto : filtroIds) {
BustaSoggetto sog = new BustaSoggetto();
sog.setTipo(idSoggetto.getTipo());
sog.setNome(idSoggetto.getNome());
filtroSoggetti.add(sog);
}
}
filter.setSoggettoList(filtroSoggetti);
// mostro risultati azione in base al tipo di metodo
if (formBean.getMethod().equals(MonitorMethods.STATO_RICHIESTE.getNome())) {
StatoPdd statoPdD = MonitorUtilities.getStatoRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
this.showStatoPdD(pd, monitorHelper, statoPdD, MonitorMethods.STATO_RICHIESTE.getNome(), formBean);
// return mapping.findForward("StatoNalOk");
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeFinished(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR_STATO_PDD);
} else if (formBean.getMethod().equals(MonitorMethods.STATO_CONSEGNE_ASINCRONE.getNome())) {
// Criteri di visualizzazione/ricerca
ConsoleSearch ricerca = new ConsoleSearch();
String newSearch = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH);
if ((newSearch != null) && newSearch.equals(MonitorCostanti.DEFAULT_VALUE_FALSE)) {
Object oldfilter = ServletUtils.getObjectFromSession(request, session, MonitorCostanti.SESSION_ATTRIBUTE_FILTER_SEARCH);
if (oldfilter != null && oldfilter instanceof FiltroStatoConsegnaAsincrona) {
filterConsegnaAsincrona = (FiltroStatoConsegnaAsincrona) oldfilter;
}
ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);
}
int idLista = Liste.MONITOR_MSG;
ricerca = monitorHelper.checkSearchParameters(idLista, ricerca);
ServletUtils.addListElementIntoSession(request, session, MonitorCostanti.OBJECT_NAME_MONITOR);
// per i criteri di
// ricerca dalla jsp
filter.setLimit(ricerca.getPageSize(idLista));
filter.setOffset(ricerca.getIndexIniziale(idLista));
StatoConsegneAsincrone statoConsegneAsincrone = MonitorUtilities.getStatoConsegneAsincrone(filterConsegnaAsincrona, formBean.getSorgenteDati());
this.showStatoConsegneAsincrone(pd, monitorHelper, statoConsegneAsincrone, MonitorMethods.STATO_CONSEGNE_ASINCRONE.getNome(), formBean);
// imposto i parametri per l'eventuale richiesta di nextPage
Parameter pMethod = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD, MonitorMethods.STATO_CONSEGNE_ASINCRONE.getNome());
Parameter pNewSearch = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH, MonitorCostanti.DEFAULT_VALUE_FALSE);
Parameter pSorgente = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE, formBean.getSorgenteDati());
// salvo l'oggetto ricerca nella sessione
ServletUtils.setSearchObjectIntoSession(request, session, ricerca);
// conservo il form bean nella session per eventuali richieste
// successive (nextPage)
ServletUtils.setObjectIntoSession(request, session, formBean, MonitorCostanti.SESSION_ATTRIBUTE_FORM_BEAN);
ServletUtils.setObjectIntoSession(request, session, filterConsegnaAsincrona, MonitorCostanti.SESSION_ATTRIBUTE_FILTER_SEARCH);
// refresh ricerca
List<Parameter> listRefresh = new ArrayList<>();
listRefresh.add(pMethod);
listRefresh.add(pNewSearch);
listRefresh.add(pSorgente);
pd.addComandoAggiornaRicercaButton(MonitorCostanti.SERVLET_NAME_MONITOR, listRefresh);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeFinished(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
// return mapping.findForward("MessaggiOk");
} else if (formBean.getMethod().equals(MonitorMethods.LISTA_RICHIESTE_PENDENTI.getNome())) {
// Criteri di visualizzazione/ricerca
ConsoleSearch ricerca = new ConsoleSearch();
String newSearch = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH);
if ((newSearch != null) && newSearch.equals(MonitorCostanti.DEFAULT_VALUE_FALSE)) {
Object oldfilter = ServletUtils.getObjectFromSession(request, session, MonitorCostanti.SESSION_ATTRIBUTE_FILTER_SEARCH);
if (oldfilter != null && oldfilter instanceof FilterSearch) {
filter = (FilterSearch) oldfilter;
}
ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);
}
int idLista = Liste.MONITOR_MSG;
ricerca = monitorHelper.checkSearchParameters(idLista, ricerca);
ServletUtils.addListElementIntoSession(request, session, MonitorCostanti.OBJECT_NAME_MONITOR);
// per i criteri di
// ricerca dalla jsp
filter.setLimit(ricerca.getPageSize(idLista));
filter.setOffset(ricerca.getIndexIniziale(idLista));
long countMessaggi = MonitorUtilities.countListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
List<Messaggio> listaMessaggi = MonitorUtilities.getListaRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
this.showMessaggi(pd, monitorHelper, countMessaggi, listaMessaggi, MonitorMethods.LISTA_RICHIESTE_PENDENTI.getNome(), ricerca, filter, formBean);
// imposto i parametri per l'eventuale richiesta di nextPage
Parameter pMethod = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD, MonitorMethods.LISTA_RICHIESTE_PENDENTI.getNome());
Parameter pNewSearch = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH, MonitorCostanti.DEFAULT_VALUE_FALSE);
Parameter pPdd = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_PDD, formBean.getPdd());
Parameter pSorgente = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE, formBean.getSorgenteDati());
// salvo l'oggetto ricerca nella sessione
ServletUtils.setSearchObjectIntoSession(request, session, ricerca);
// conservo il form bean nella session per eventuali richieste
// successive (nextPage)
ServletUtils.setObjectIntoSession(request, session, formBean, MonitorCostanti.SESSION_ATTRIBUTE_FORM_BEAN);
ServletUtils.setObjectIntoSession(request, session, filter, MonitorCostanti.SESSION_ATTRIBUTE_FILTER_SEARCH);
if(singlePdD){
request.setAttribute(Costanti.REQUEST_ATTIBUTE_PARAMS, ServletUtils.getParametersAsString(false, pMethod, pNewSearch, pSorgente));
}
else{
request.setAttribute(Costanti.REQUEST_ATTIBUTE_PARAMS, ServletUtils.getParametersAsString(false, pMethod, pNewSearch, pPdd));
}
// refresh ricerca
List<Parameter> listRefresh = new ArrayList<>();
listRefresh.add(pMethod);
listRefresh.add(pNewSearch);
listRefresh.add(pSorgente);
pd.addComandoAggiornaRicercaButton(MonitorCostanti.SERVLET_NAME_MONITOR, listRefresh);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeFinished(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
// return mapping.findForward("MessaggiOk");
} else if (formBean.getMethod().equals(MonitorMethods.ELIMINAZIONE_RICHIESTE_PENDENTI.getNome()) ||
formBean.getMethod().equals(MonitorMethods.RICONSEGNA_IMMEDIATA_RICHIESTE_PENDENTI.getNome())) {
boolean updateDataRispedizione = formBean.getMethod().equals(MonitorMethods.RICONSEGNA_IMMEDIATA_RICHIESTE_PENDENTI.getNome());
if (actionConfirm == null) {
monitorHelper.makeMenu();
// setto la barra del titolo
List<Parameter> lstParam = new ArrayList<>();
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR, null));
ServletUtils.setPageDataTitle(pd, lstParam);
String msg = "";
if (filter != null) {
if (filter.getCorrelazioneApplicativa() != null && !"".equals(filter.getCorrelazioneApplicativa()))
msg += "<br>ID Applicativo: "+filter.getCorrelazioneApplicativa();
if (filter.getMessagePattern() != null && !"".equals(filter.getMessagePattern()))
msg += "<br>Contenuto Messaggio: "+filter.getMessagePattern();
if (filter.getSoglia() > 0)
msg += "<br>Messaggi piu' vecchi di (minuti): "+filter.getSoglia();
if (filter.getStato() != null && !"".equals(filter.getStato().getValue()))
msg += "<br>Stato: "+filter.getStato();
if (filter.getIdMessaggio() != null && !"".equals(filter.getIdMessaggio()))
msg += "<br>ID: "+filter.getIdMessaggio();
if (filter.getBusta() != null) {
if (filter.getBusta().getProfiloCollaborazione() != null && !"".equals(filter.getBusta().getProfiloCollaborazione()))
msg += "<br>Profilo di collaborazione: "+filter.getBusta().getProfiloCollaborazione();
if (filter.getBusta().isAttesaRiscontro())
msg += "<br>In Attesa di Riscontro: "+filter.getBusta().isAttesaRiscontro();
if (filter.getBusta().getMittente() != null) {
if (filter.getBusta().getMittente().getTipo() != null && !"".equals(filter.getBusta().getMittente().getTipo()))
msg += "<br>Tipo Mittente: "+filter.getBusta().getMittente().getTipo();
if (filter.getBusta().getMittente().getNome() != null && !"".equals(filter.getBusta().getMittente().getNome()))
msg += "<br>Nome Mittente: "+filter.getBusta().getMittente().getNome();
}
if (filter.getBusta().getDestinatario() != null) {
if (filter.getBusta().getDestinatario().getTipo() != null && !"".equals(filter.getBusta().getDestinatario().getTipo()))
msg += "<br>Tipo Destinatario: "+filter.getBusta().getDestinatario().getTipo();
if (filter.getBusta().getDestinatario().getNome() != null && !"".equals(filter.getBusta().getDestinatario().getNome()))
msg += "<br>Nome Destinatario: "+filter.getBusta().getDestinatario().getNome();
}
if (filter.getBusta().getServizio() != null) {
if (filter.getBusta().getServizio().getTipo() != null && !"".equals(filter.getBusta().getServizio().getTipo()))
msg += "<br>Tipo Servizio: "+filter.getBusta().getServizio().getTipo();
if (filter.getBusta().getServizio().getNome() != null && !"".equals(filter.getBusta().getServizio().getNome()))
msg += "<br>Nome Servizio: "+filter.getBusta().getServizio().getNome();
if (filter.getBusta().getServizio().getVersione() != null && filter.getBusta().getServizio().getVersione().intValue()>0)
msg += "<br>Versione Servizio: "+filter.getBusta().getServizio().getVersione();
}
if (filter.getBusta().getAzione() != null && !"".equals(filter.getBusta().getAzione()))
msg += "<br>Azione: "+filter.getBusta().getAzione();
}
}
StatoPdd stato = MonitorUtilities.getStatoRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
String prefixMsg = "Eliminare i";
if(updateDataRispedizione) {
prefixMsg = "Aggiornare la data di riconsegna dei";
}
if(stato.getTotMessaggi()>0){
if (msg.equals(""))
msg = prefixMsg+" "+stato.getTotMessaggi()+" messaggi?";
else
msg = prefixMsg+" "+stato.getTotMessaggi()+" messaggi corrispondenti ai filtri selezionati?<br>"+msg;
}else{
if (msg.equals(""))
msg = "Non esistono messaggi";
else
msg = "Non esistono messaggi corrispondenti ai filtri selezionati:<br>"+msg;
pd.setMode(Costanti.DATA_ELEMENT_EDIT_MODE_DISABLE_NAME);
}
pd.setMessage(msg, Costanti.MESSAGE_TYPE_INFO);
// imposto i parametri per l'eventuale richiesta di nextPage
// String params = "method=" + MonitorMethods.ELIMINAZIONE_RICHIESTE_PENDENTI.getNome();
// params += "&monhid=yes";
// params += "&actionConfirm=yes";
Parameter pMethod = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD, formBean.getMethod());
Parameter pActionconfirm = new Parameter(MonitorCostanti.PARAMETRO_MONITOR_ACTION_CONFIRM, Costanti.CHECK_BOX_ENABLED);
ServletUtils.setObjectIntoSession(request, session, formBean, MonitorCostanti.SESSION_ATTRIBUTE_FORM_BEAN);
ServletUtils.setObjectIntoSession(request, session, filter, MonitorCostanti.SESSION_ATTRIBUTE_FILTER_SEARCH);
request.setAttribute(Costanti.REQUEST_ATTIBUTE_PARAMS, ServletUtils.getParametersAsString(false, pMethod, pActionconfirm));
ServletUtils.addListElementIntoSession(request, session, MonitorCostanti.OBJECT_NAME_MONITOR);
if(stato.getTotMessaggi()>0){
String pre = Costanti.HTML_MODAL_SPAN_PREFIX;
String post = Costanti.HTML_MODAL_SPAN_SUFFIX;
pd.setMessage(pre + msg + post, Costanti.MESSAGE_TYPE_CONFIRM);
String[][] bottoni = {
{ Costanti.LABEL_MONITOR_BUTTON_ANNULLA,
Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_PREFIX +
Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_SUFFIX
},
{ Costanti.LABEL_MONITOR_BUTTON_CONFERMA,
Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_PREFIX +
Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_SUFFIX }};
pd.setBottoni(bottoni);
List<DataElement>dati = new ArrayList<>();
dati.add(ServletUtils.getDataElementForEditModeFinished());
pd.setDati(dati);
this.showForm(request, session, monitorHelper, pd, tipoProfcoll, MonitorMethods.getMethodsNames(), "", "", formBean, monitorCore);
}
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeInProgress(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
} else {
if(actionConfirm.equals(Costanti.PARAMETRO_ACTION_CONFIRM_VALUE_OK)) {
Tipologia tipoOperazione = Tipologia.DEL;
if(updateDataRispedizione) {
tipoOperazione = Tipologia.CHANGE;
}
IDOperazione [] idOperazione = null;
boolean auditDisabiltato = false;
try{
idOperazione = core.performAuditRequest(new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}catch(AuditDisabilitatoException disabilitato){
auditDisabiltato = true;
}
try{
long n = -1;
if(Tipologia.CHANGE.equals(tipoOperazione)) {
n = MonitorUtilities.aggiornaDataRispedizioneRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
pd.setMessage("Aggiornata la data di rispedizione di " + n + " messaggi"+(n==1?"o":""), Costanti.MESSAGE_TYPE_INFO);
}
else {
n = MonitorUtilities.deleteRichiestePendenti(filter,formBean.getPdd(),formBean.getSorgenteDati());
pd.setMessage("Eliminat"+(n==1?"o":"i")+" " + n + " messaggi"+(n==1?"o":""), Costanti.MESSAGE_TYPE_INFO);
}
if(!auditDisabiltato){
core.performAuditComplete(idOperazione, new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}
}catch(Exception e){
if(!auditDisabiltato){
core.performAuditError(idOperazione, e.getMessage(), new Tipologia []{tipoOperazione}, userLogin, new Object[] {filter});
}
throw e;
}
}
this.showForm(request, session, monitorHelper, pd, tipoProfcoll, MonitorMethods.getMethodsNames(), "", "", formBean, monitorCore);
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeInProgress(mapping, MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
// return mapping.findForward("MonitorForm");
// return mapping.findForward("DeleteOk");
}
} else {
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeCheckError(mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
}
}
catch(javax.xml.ws.WebServiceException exception){
try{
if(monitorHelper!=null)
monitorHelper.makeMenu();
ControlStationCore.getLog().error(exception.getMessage(), exception);
Throwable e = exception;
if(Utilities.existsInnerException(e, org.apache.cxf.transport.http.HTTPException.class)){
e = Utilities.getInnerException(e, org.apache.cxf.transport.http.HTTPException.class);
}
pd.setMessage(e.getMessage());
pd.disableEditMode();
ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
return ServletUtils.getStrutsForwardEditModeCheckError(mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
}
catch (Throwable e) {
return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
}
}
catch (Throwable e) {
return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
MonitorCostanti.OBJECT_NAME_MONITOR,
MonitorCostanti.TIPO_OPERAZIONE_MONITOR);
}
}
/**
* Recupera i dati dalla request e riempe il form
*
* @param request
* @return MonitorFormBean
* @throws Exception
*/
private MonitorFormBean getBeanForm(ArrayList<String> errors, MonitorHelper monitorHelper) throws Exception {
try {
MonitorFormBean form = null;
String method = null;
// controllo se richiesta corretta
boolean trovato = false;
method = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD);
if ((method == null) || method.equals("")) {
return null;
}
MonitorMethods[] methods = MonitorMethods.values();
for (int i = 0; (i < methods.length) && (trovato == false); i++) {
if (method.equals(methods[i].getNome()) || method.equals(MonitorCostanti.DEFAULT_VALUE_FORM_BEAN_METHOD_DETAILS)) {
trovato = true;
continue;
}
}
if (trovato == false) {
errors.add("Metodo selezionato sconosciuto. Selezionare un metodo tra:" + MonitorMethods.getMethodNames().toString());
throw new Exception("Metodo selezionato SCONOSCIUTO.");
}
form = new MonitorFormBean();
form.setMethod(method);
String orderByConsegnaAsincrona = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_ORDER_BY_CONSEGNA_ASINCRONA);
if ((orderByConsegnaAsincrona != null) && !orderByConsegnaAsincrona.equals("")) {
form.setOrderByConsegnaAsincrona(orderByConsegnaAsincrona);
}
String idMessaggio = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO);
if ((idMessaggio != null) && !idMessaggio.equals("")) {
form.setIdMessaggio(idMessaggio);
}
// tipo messaggio outbox/inbox
String tipo = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO);
if ((tipo != null) && !tipo.equals("")) {
form.setTipo(tipo);
}
// Profilo Collaborazione
String profcoll = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE);
if ((profcoll == null) || profcoll.equals("") || profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ANY)) {
form.setProfiloCollaborazione(null);
} else if (profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO)) {
form.setProfiloCollaborazione(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO);
} else if (profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO)) {
form.setProfiloCollaborazione(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO);
} else if (profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_SINCRONO)) {
form.setProfiloCollaborazione(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINCRONO);
} else if (profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ONEWAY)) {
form.setProfiloCollaborazione(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINGOLO_ONEWAY);
}
// Mittente
String tipoSogg = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_MITTENTE);
String nomeSogg = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_MITTENTE);
BustaSoggetto mittente = null;
if (((tipoSogg != null) && !tipoSogg.equals("")) || ((nomeSogg != null) && !nomeSogg.equals(""))) {
mittente = new BustaSoggetto();
mittente.setNome(nomeSogg);
mittente.setTipo(tipoSogg);
}
form.setMittente(mittente);
// Destinatario
BustaSoggetto destinatario = null;
tipoSogg = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_DESTINATARIO);
nomeSogg = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_DESTINATARIO);
if (((tipoSogg != null) && !tipoSogg.equals("")) || ((nomeSogg != null) && !nomeSogg.equals(""))) {
destinatario = new BustaSoggetto();
destinatario.setNome(nomeSogg);
destinatario.setTipo(tipoSogg);
}
form.setDestinatario(destinatario);
// Servizio
BustaServizio servizio = null;
String tipoServizio = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_SERVIZIO);
String nomeServizio = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_SERVIZIO);
if (((tipoServizio != null) && !tipoServizio.equals("")) || ((nomeServizio != null) && !nomeServizio.equals(""))) {
servizio = new BustaServizio();
servizio.setNome(nomeServizio);
servizio.setTipo(tipoServizio);
}
String versioneServizio = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_VERSIONE_SERVIZIO);
if(versioneServizio!=null && !"".equals(versioneServizio)) {
if(servizio==null) {
servizio = new BustaServizio();
}
servizio.setVersione(Integer.valueOf(versioneServizio));
}
form.setServizio(servizio);
// Azione
String azione = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_AZIONE);
if ((azione != null) && !azione.equals("")) {
form.setAzione(azione);
}
// Soglia
String soglia = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_SOGLIA);
long sogliaLong = 0;
try {
sogliaLong = Long.parseLong(soglia);
} catch (Exception e) {
// ignore
}
form.setSoglia(sogliaLong);
// Riscontro
String riscontro = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_RISCONTRO);
if ((riscontro != null) && !riscontro.equals("")) {
form.setRiscontro(true);
}
// pdd/sorgente
if(singlePdD){
String sorgente = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE);
if ((sorgente != null) && !sorgente.equals("")) {
form.setSorgenteDati(sorgente);
}
}
else {
String pdd = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_PDD);
if ((pdd != null) && !pdd.equals("")) {
form.setPdd(pdd);
}
}
// stato
String stato = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_STATO);
if ((stato != null) && (stato.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_STATO_NONE) || stato.equals(""))) {
stato = null;
}
form.setStato(stato);
// messagePattern
// String mp = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_PATTERN);
// if ((mp != null) && !mp.equals("")) {
// form.setMessagePattern(mp);
// }
// CorrelazioneApplicativa
String correlazioneApplicativa = monitorHelper.getParameter(MonitorCostanti.PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA);
if ((correlazioneApplicativa != null) && !correlazioneApplicativa.equals("")) {
form.setCorrelazioneApplicativa(correlazioneApplicativa);
}
return form;
} catch (Exception e) {
throw new Exception(e);
}
}
private List<Parameter> createSearchString(MonitorFormBean monitorFormBean )
throws Exception {
try {
List<Parameter> lstParam = new ArrayList<>();
// metodo
if (monitorFormBean.getMethod() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD, monitorFormBean.getMethod()));
}
// pdd
if (monitorFormBean.getPdd() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_PDD, monitorFormBean.getPdd()));
}
// sorgenteDati
if (monitorFormBean.getSorgenteDati() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE, monitorFormBean.getSorgenteDati()));
}
// destinatario
if (monitorFormBean.getDestinatario() != null) {
BustaSoggetto destinatario = monitorFormBean.getDestinatario();
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_DESTINATARIO, destinatario.getTipo()));
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_DESTINATARIO, destinatario.getNome()));
}
// mittente
if (monitorFormBean.getMittente() != null) {
BustaSoggetto mitt = monitorFormBean.getMittente();
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_MITTENTE, mitt.getTipo()));
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_MITTENTE, mitt.getNome()));
}
// servizio
if (monitorFormBean.getServizio() != null) {
BustaServizio serv = monitorFormBean.getServizio();
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_SERVIZIO, serv.getTipo()));
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NOME_SERVIZIO, serv.getNome()));
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_VERSIONE_SERVIZIO, serv.getVersione()!=null ? (serv.getVersione().intValue()+"") : null));
}
// idmessaggio
if (monitorFormBean.getIdMessaggio() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO, monitorFormBean.getIdMessaggio()));
}
// pattern
// if (monitorFormBean.getMessagePattern() != null) {
// lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_PATTERN, monitorFormBean.getMessagePattern()));
// }
// azione
if (monitorFormBean.getAzione() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_AZIONE, monitorFormBean.getAzione()));
}
// stato
if (monitorFormBean.getStato() != null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_STATO, monitorFormBean.getStato()));
}
// soglia
if (monitorFormBean.getSoglia() > 0) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_SOGLIA,""+ monitorFormBean.getSoglia()));
}
// riscontro
if (monitorFormBean.isRiscontro()) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_RISCONTRO, ""+monitorFormBean.isRiscontro()));
}
// profilo collaborazione
String profcoll = monitorFormBean.getProfiloCollaborazione();
if (profcoll == null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ANY));
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO)) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO));
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO)) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO));
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINCRONO)) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_SINCRONO));
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINGOLO_ONEWAY)) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ONEWAY));
} else {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE,
MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ANY ));
}
// correlazioneApplicative
if (monitorFormBean.getCorrelazioneApplicativa()!=null) {
lstParam.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA, monitorFormBean.getCorrelazioneApplicativa()));
}
return lstParam;
// return ServletUtils.getParametersAsString(inserisciPrimoParametro, lstParam.toArray(new Parameter[lstParam.size()])).replaceAll(" ", "%20");
} catch (Exception e) {
throw new Exception(e);
}
}
private void showForm(HttpServletRequest request, HttpSession session, MonitorHelper monitorHelper, PageData pd, String[] profiliCollaborazione,
String[] metodiMonitor, String azione, String soglia, MonitorFormBean mb, MonitorCore monitorCore) throws Exception {
try {
monitorHelper.makeMenu();
//User user = ServletUtils.getUserFromSession(session);
// setto la barra del titolo
List<GeneralLink> titlelist = new ArrayList<>();
GeneralLink tl1 = new GeneralLink();
tl1.setLabel(MonitorCostanti.LABEL_MONITOR);
titlelist.add(tl1);
pd.setTitleList(titlelist);
// preparo i campi
List<DataElement> dati = new ArrayList<>();
dati.add(ServletUtils.getDataElementForEditModeFinished());
DataElement de = new DataElement();
de.setType(DataElementType.TITLE);
de.setLabel(MonitorCostanti.LABEL_MONITOR);
dati.add(de);
// select method
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_METHOD);
de.setType(DataElementType.SELECT);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_METHOD);
de.setSelected(mb != null ? mb.getMethod() : "");
de.setValues(metodiMonitor);
de.setPostBack(true);
dati.add(de);
if(singlePdD){
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SORGENTE);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE);
String sorgenteSelezionata = mb != null ? mb.getSorgenteDati() : sorgentiDriverMonitoraggioLocale.get(0);
if(sorgentiDriverMonitoraggioLocale.size()>1) {
de.setType(DataElementType.SELECT);
de.setValues(sorgentiDriverMonitoraggioLocale);
de.setLabels(labelSorgentiDriverMonitoraggioLocale);
de.setSelected(sorgenteSelezionata);
}
else {
de.setType(DataElementType.HIDDEN);
de.setValue(sorgenteSelezionata);
}
dati.add(de);
}
else {
String user = ServletUtils.getUserLoginFromSession(session);
List<PdDControlStation> pdds = pddCore.pddList(user, new ConsoleSearch(true));
// String[] nomiPdD = new String[];
List<String> nomiPdD = new ArrayList<>();
for (PdDControlStation pdd : pdds) {
// visualizzo tutte le pdd che non sono esterne
if (!pdd.getTipo().equals(PddTipologia.ESTERNO.toString())) {
nomiPdD.add(pdd.getNome());
}
}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PORTA_DOMINIO);
de.setType(DataElementType.SELECT);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_PDD);
de.setValues(nomiPdD.toArray(new String[nomiPdD.size()]));
de.setSelected(mb != null ? mb.getPdd() : consoleProperties.getGestioneCentralizzataWSMonitorPddDefault());
dati.add(de);
}
boolean showFilterConsegnaAsincrona = (mb==null || mb.getMethod()==null || mb.getMethod().equals(MonitorMethods.STATO_CONSEGNE_ASINCRONE.getNome()));
if(showFilterConsegnaAsincrona) {
List<String> values = new ArrayList<>();
values.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA);
values.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_RICONSEGNA);
values.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_MESSAGE_BOX);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PARAMETRO_MONITOR_ORDER_BY_CONSEGNA_ASINCRONA);
de.setType(DataElementType.SELECT);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ORDER_BY_CONSEGNA_ASINCRONA);
de.setValues(values);
de.setSelected(mb != null && mb.getOrderByConsegnaAsincrona()!=null ? mb.getOrderByConsegnaAsincrona() : MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA);
dati.add(de);
}
boolean showFilter = (mb!=null && mb.getMethod()!=null && !mb.getMethod().equals(MonitorMethods.STATO_CONSEGNE_ASINCRONE.getNome()));
if(showFilter) {
// Titolo Filter
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_FILTRO_RICERCA);
de.setType(DataElementType.TITLE);
dati.add(de);
// CorrelazioneApplicativa
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA);
de.setType(DataElementType.TEXT_EDIT);
de.setValue(mb != null ? mb.getCorrelazioneApplicativa() : "");
de.setSize(monitorHelper.getSize());
dati.add(de);
// Message Pattern
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PATTERN);
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_PATTERN);
// de.setType(DataElementType.TEXT_EDIT);
// de.setValue(mb != null ? mb.getMessagePattern() : "");
// de.setSize(monitorHelper.getSize());
// dati.add(de);
// Soglia
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SOGLIA_LABEL);
de.setNote(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SOGLIA_NOTE);
de.setType(DataElementType.TEXT_EDIT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_SOGLIA);
de.setValue(mb != null ? "" + mb.getSoglia() : soglia);
dati.add(de);
// Stato
if(monitorCore.isShowJ2eeOptions()) {
String [] stati = MonitorCostanti.getDefaultValuesParametroStato();
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_STATO);
de.setType(DataElementType.SELECT);
de.setValues(stati);
de.setSelected(mb != null ? mb.getStato() : MonitorCostanti.DEFAULT_VALUE_PARAMETRO_STATO_NONE);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_STATO);
dati.add(de);
}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_INFORMAZIONI_PROTOCOLLO);
de.setType(DataElementType.TITLE);
dati.add(de);
// ID Messaggio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ID_MESSAGGIO);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO);
de.setType(DataElementType.TEXT_EDIT);
de.setValue(mb != null ? mb.getIdMessaggio() : "");
de.setSize(monitorHelper.getSize());
dati.add(de);
// Profilo Collaborazione
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE);
de.setType(DataElementType.SELECT);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_PROFILO_COLLABORAZIONE);
de.setValues(profiliCollaborazione);
String profcoll = mb != null ? mb.getProfiloCollaborazione() : "";
if ((profcoll == null) || profcoll.equals("") || profcoll.equals(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ANY)) {
de.setSelected(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_NONE);
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO)) {
de.setSelected(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_ASIMMETRICO);
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO)) {
de.setSelected(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ASINCRONO_SIMMETRICO);
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINCRONO)) {
de.setSelected(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_SINCRONO);
} else if (profcoll.equals(MonitorCostanti.LABEL_MONITOR_PROFILO_COLLABORAZIONE_SINGOLO_ONEWAY)) {
de.setSelected(MonitorCostanti.DEFAULT_VALUE_PARAMETRO_TIPO_PROFILO_COLLABORAZIONE_ONEWAY);
}
dati.add(de);
// riscontro
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RISCONTRO);
de.setType(DataElementType.CHECKBOX);
de.setValue(mb != null ? "" + mb.isRiscontro() : "");
de.setName(MonitorCostanti.PARAMETRO_MONITOR_RISCONTRO);
dati.add(de);
// Mittente
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_SOGGETTO_MITTENTE);
de.setType(DataElementType.TITLE);
dati.add(de);
// Tipo Mittente
// if (InterfaceType.STANDARD.equals(user.getInterfaceType())) {
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_MITTENTE);
// de.setType(DataElementType.HIDDEN);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_MITTENTE);
// de.setValue("");
// dati.add(de);
// } else {
SoggettiCore soggettiCore = new SoggettiCore(monitorCore);
List<String> tipiSoggetti = new ArrayList<>();
List<String> tipiSoggetti_label = new ArrayList<>();
tipiSoggetti.add("");
tipiSoggetti_label.add("-");
tipiSoggetti.addAll(soggettiCore.getTipiSoggettiGestiti());
tipiSoggetti_label.addAll(soggettiCore.getTipiSoggettiGestiti());
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_MITTENTE);
de.setType(DataElementType.SELECT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_MITTENTE);
de.setSelected(mb != null ? (mb.getMittente() != null ? mb.getMittente().getTipo() : "") : "");
de.setValues(tipiSoggetti);
de.setLabels(tipiSoggetti_label);
dati.add(de);
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_MITTENTE);
// de.setType(DataElementType.TEXT_EDIT);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_MITTENTE);
// de.setValue(mb != null ? (mb.getMittente() != null ? mb.getMittente().getTipoSoggetto() : "") : "");
// dati.add(de);
//}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_MITTENTE );
de.setType(DataElementType.TEXT_EDIT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_MITTENTE);
de.setValue(mb != null ? (mb.getMittente() != null ? mb.getMittente().getNome() : "") : "");
dati.add(de);
// Destinatario
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_SOGGETTO_DESTINATARIO);
de.setType(DataElementType.TITLE);
dati.add(de);
// Destinatario
// if (InterfaceType.STANDARD.equals(user.getInterfaceType())) {
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_DESTINATARIO );
// de.setType(DataElementType.HIDDEN);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_DESTINATARIO);
// de.setValue("");
// dati.add(de);
// } else {
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_DESTINATARIO);
// de.setType(DataElementType.TEXT_EDIT);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_DESTINATARIO);
// de.setValue(mb != null ? (mb.getDestinatario() != null ? mb.getDestinatario().getTipoSoggetto() : "") : "");
// dati.add(de);
//}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_DESTINATARIO);
de.setType(DataElementType.SELECT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_DESTINATARIO);
de.setSelected(mb != null ? (mb.getDestinatario() != null ? mb.getDestinatario().getTipo() : "") : "");
de.setValues(tipiSoggetti);
de.setLabels(tipiSoggetti_label);
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_DESTINATARIO );
de.setType(DataElementType.TEXT_EDIT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_DESTINATARIO);
de.setValue(mb != null ? (mb.getDestinatario() != null ? mb.getDestinatario().getNome() : "") : "");
dati.add(de);
// Servizio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_SERVIZIO);
de.setType(DataElementType.TITLE);
dati.add(de);
// Servizio
// if (InterfaceType.STANDARD.equals(user.getInterfaceType())) {
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_SERVIZIO );
// de.setType(DataElementType.HIDDEN);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_SERVIZIO);
// de.setValue("");
// dati.add(de);
// } else {
// de = new DataElement();
// de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_SERVIZIO);
// de.setType(DataElementType.TEXT_EDIT);
// de.setSize(monitorHelper.getSize());
// de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_SERVIZIO);
// de.setValue(mb != null ? (mb.getServizio() != null ? mb.getServizio().getTipo() : "") : "");
// dati.add(de);
AccordiServizioParteSpecificaCore aspsCore = new AccordiServizioParteSpecificaCore(monitorCore);
List<String> tipiServizi = new ArrayList<>();
List<String> tipiServizi_label = new ArrayList<>();
tipiServizi.add("");
tipiServizi_label.add("-");
List<String> list = monitorCore.getProtocolli(request, session);
for (String protocolloL : list) {
tipiServizi.addAll(aspsCore.getTipiServiziGestitiProtocollo(protocolloL,ServiceBinding.SOAP));
tipiServizi_label.addAll(aspsCore.getTipiServiziGestitiProtocollo(protocolloL,ServiceBinding.SOAP));
List<String> l = aspsCore.getTipiServiziGestitiProtocollo(protocolloL,ServiceBinding.REST);
if(l!=null && !l.isEmpty()) {
for (String tipo : list) {
if(!tipiServizi.contains(tipo)) {
tipiServizi.add(tipo);
tipiServizi_label.add(tipo);
}
}
}
}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_SERVIZIO);
de.setType(DataElementType.SELECT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_SERVIZIO);
de.setSelected(mb != null ? (mb.getServizio() != null ? mb.getServizio().getTipo() : "") : "");
de.setValues(tipiServizi);
de.setLabels(tipiServizi_label);
dati.add(de);
//}
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_SERVIZIO);
de.setType(DataElementType.TEXT_EDIT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_SERVIZIO);
de.setValue(mb != null ? (mb.getServizio() != null ? mb.getServizio().getNome() : "") : "");
dati.add(de);
String versione = null;
if(mb!=null && mb.getServizio()!=null && mb.getServizio().getVersione()!=null) {
versione = mb.getServizio().getVersione().intValue()+"";
}
//String versioneSelezionata = ((versione==null || "".equals(versione)) ? "1" : versione);
de = monitorHelper.getVersionDataElement(MonitorCostanti.LABEL_PARAMETRO_MONITOR_VERSIONE_SERVIZIO,
MonitorCostanti.PARAMETRO_MONITOR_VERSIONE_SERVIZIO,
versione, false);
dati.add(de);
// Azione
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_AZIONE);
de.setType(DataElementType.TITLE);
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_AZIONE);
de.setType(DataElementType.TEXT_EDIT);
de.setSize(monitorHelper.getSize());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_AZIONE);
de.setValue(mb != null ? mb.getAzione() : azione);
dati.add(de);
}
pd.setDati(dati);
pd.setLabelBottoneInvia(MonitorCostanti.LABEL_ACCEDI);
} catch (Exception e) {
throw new Exception(e);
}
}
private void showStatoPdD(PageData pd, MonitorHelper monitorHelper, StatoPdd statoPdD, String methodName, MonitorFormBean monitorFormBean)
throws Exception{
try {
// index e pagesize non sono utilizzate
// ma bisogna settarla comunque
pd.setIndex(0);
pd.setPageSize(20);
// setto la barra del titolo
List<Parameter> lstParam = new ArrayList<>();
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR, MonitorCostanti.SERVLET_NAME_MONITOR,
this.createSearchString(monitorFormBean).toArray(new Parameter[lstParam.size()])));
lstParam.add(new Parameter(methodName, null));
ServletUtils.setPageDataTitle(pd, lstParam);
monitorHelper.makeMenu();
// totale
DataElement de = new DataElement();
List<DataElement> dati = new ArrayList<>();
// Se statoNal e' null allora nessuna informazione presente
if (statoPdD == null) {
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_NESSUNA_INFORMAZIONE_PRESENTE);
de.setType(DataElementType.TEXT);
de.setSize(monitorHelper.getSize());
dati.add(de);
} else {
// Stampo informazioni relative al numero di messaggi
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_STATO_PORTA_DOMINIO);
de.setType(DataElementType.TITLE);
de.setSize(monitorHelper.getSize());
dati.add(de);
/* Totali */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TOTALE_MESSAGGI);
de.setType(DataElementType.TEXT);
long totMsg = statoPdD.getTotMessaggi();
de.setValue(totMsg > 0 ? "" + totMsg : MonitorCostanti.LABEL_MONITOR_NESSUN_MESSAGGIO);
de.setSize(monitorHelper.getSize());
dati.add(de);
if (totMsg > 0) {
// Max
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MASSIMO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMaxAttesa() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
// Medio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MEDIO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMedioAttesa() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
}
/* Consegna */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_MESSAGGI_CONSEGNA);
de.setType(DataElementType.TITLE);
de.setSize(monitorHelper.getSize());
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TOTALE_MESSAGGI);
de.setType(DataElementType.TEXT);
long inConsegna = statoPdD.getNumMsgInConsegna();
de.setValue(inConsegna > 0 ? "" + inConsegna : MonitorCostanti.LABEL_MONITOR_NESSUN_MESSAGGIO_CONSEGNA);
de.setSize(monitorHelper.getSize());
dati.add(de);
if (inConsegna > 0) {
// Max
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MASSIMO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMaxAttesaInConsegna() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
// Medio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MEDIO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMedioAttesaInConsegna() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
}
/* Spedizione */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_MESSAGGI_SPEDIZIONE);
de.setType(DataElementType.TITLE);
de.setSize(monitorHelper.getSize());
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TOTALE_MESSAGGI);
de.setType(DataElementType.TEXT);
long inSpedizione = statoPdD.getNumMsgInSpedizione();
de.setValue(inSpedizione > 0 ? "" + inSpedizione : MonitorCostanti.LABEL_MONITOR_NESSUN_MESSAGGIO_SPEDIZIONE);
de.setSize(monitorHelper.getSize());
dati.add(de);
if (inSpedizione > 0) {
// Max
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MASSIMO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMaxAttesaInSpedizione() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
// Medio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MEDIO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMedioAttesaInSpedizione() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
}
/* Processamento */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_MESSAGGI_PROCESSAMENTO);
de.setType(DataElementType.TITLE);
de.setSize(monitorHelper.getSize());
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TOTALE_MESSAGGI_PROCESSAMENTO);
de.setType(DataElementType.TEXT);
long inProcess = statoPdD.getNumMsgInProcessamento();
de.setValue(inProcess > 0 ? "" + inProcess : MonitorCostanti.LABEL_MONITOR_NESSUN_MESSAGGIO_PROCESSAMENTO);
de.setSize(monitorHelper.getSize());
dati.add(de);
if (inProcess > 0) {
// Max
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MASSIMO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMaxAttesaInProcessamento() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
// Medio
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TEMPO_MEDIO_ATTESA);
de.setType(DataElementType.TEXT);
de.setValue(Utilities.convertSystemTimeIntoStringMillisecondi(statoPdD.getTempoMedioAttesaInProcessamento() * 1000, false));
de.setSize(monitorHelper.getSize());
dati.add(de);
}
/* Messaggi Duplicati */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_MESSAGGI_DUPLICATI);
de.setType(DataElementType.TITLE);
de.setSize(monitorHelper.getSize());
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_TOTALE_MESSAGGI);
de.setType(DataElementType.TEXT);
long duplicati = statoPdD.getTotMessaggiDuplicati();
de.setValue(duplicati > 0 ? "" + duplicati : MonitorCostanti.LABEL_MONITOR_NESSUN_MESSAGGIO_DUPLICATO);
de.setSize(monitorHelper.getSize());
dati.add(de);
}
pd.setInserisciBottoni(false);
pd.setMode(Costanti.DATA_ELEMENT_EDIT_MODE_DISABLE_NAME);
pd.setDati(dati);
} catch (Exception e) {
throw new Exception(e);
}
}
private void showDettagliMessaggio(PageData pd, MonitorHelper monitorHelper, Messaggio messaggio, MonitorFormBean monitorFormBean)
throws Exception {
try {
PorteApplicativeCore paCore = new PorteApplicativeCore(monitorCore);
ServiziApplicativiCore saCore = new ServiziApplicativiCore(monitorCore);
SoggettiCore soggettiCore = new SoggettiCore(monitorCore);
SimpleDateFormat formatterRispedizione = DateUtils.getDefaultDateTimeFormatter("yyyy-MM-dd HH:mm:ss.SSS");
List<Parameter> newSearchFalse = this.createSearchString(monitorFormBean);
newSearchFalse.add(new Parameter(MonitorCostanti.PARAMETRO_MONITOR_NEW_SEARCH, MonitorCostanti.DEFAULT_VALUE_FALSE));
// setto la barra del titolo
List<Parameter> lstParam = new ArrayList<>();
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR, MonitorCostanti.SERVLET_NAME_MONITOR,
this.createSearchString(monitorFormBean).toArray(new Parameter[lstParam.size()])));
lstParam.add(new Parameter(MonitorMethods.LISTA_RICHIESTE_PENDENTI.getNome(), MonitorCostanti.SERVLET_NAME_MONITOR,
newSearchFalse.toArray(new Parameter[lstParam.size()])));
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR_DETTAGLIO_MESSAGGIO, null));
ServletUtils.setPageDataTitle(pd, lstParam);
monitorHelper.makeMenu();
List<DataElement> dati = new ArrayList<>();
DataElement de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_INFORMAZIONI_PROTOCOLLO);
de.setType(DataElementType.TITLE);
dati.add(de);
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ID_MESSAGGIO);
de.setValue(messaggio.getIdMessaggio());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO);
dati.add(de);
/* BUSTA */
Busta busta = messaggio.getBustaInfo();
BustaSoggetto mittente = (busta != null ? busta.getMittente() : null);
BustaSoggetto destinatario = (busta != null ? busta.getDestinatario() : null);
BustaServizio servizio = (busta != null ? busta.getServizio() : null);
String azione = (busta != null ? busta.getAzione() : null);
String profilo = (busta != null ? busta.getProfiloCollaborazione() : null);
String riferimento = (busta != null ? busta.getRiferimentoMessaggio() : null);
boolean riscontro = (busta != null ? busta.isAttesaRiscontro() : false);
if (mittente != null && mittente.getTipo()!=null && mittente.getNome()!=null) {
/* Mittente */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_MITTENTE);
de.setType(DataElementType.TEXT);
de.setValue(mittente.getTipo() + "/" + mittente.getNome());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_MITTENTE);
dati.add(de);
}
if (destinatario != null) {
/* Destinatario */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_DESTINATARIO);
de.setType(DataElementType.TEXT);
de.setValue(destinatario.getTipo() + "/" + destinatario.getNome());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_DESTINATARIO);
dati.add(de);
}
if (servizio != null) {
/* Servizio */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SERVIZIO);
de.setType(DataElementType.TEXT);
de.setValue(servizio.getTipo() + "/" + servizio.getNome()+
(servizio.getVersione()!=null ? (" v"+servizio.getVersione().intValue()) : "")
);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_SERVIZIO);
dati.add(de);
}
if (azione != null) {
/* Azione */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_AZIONE);
de.setType(DataElementType.TEXT);
de.setValue(busta.getAzione());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_AZIONE);
dati.add(de);
}
if (riferimento != null) {
/* Riferimento */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RIFERIMENTO);
de.setType(DataElementType.TEXT);
de.setValue(riferimento);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_RIFERIMENTO);
dati.add(de);
}
if (profilo != null) {
/* Profilo Collaborazione */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PROFILO);
de.setType(DataElementType.TEXT);
de.setValue(profilo);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_PROFILO);
dati.add(de);
}
/* Riscontro */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RISCONTRO);
de.setType(DataElementType.TEXT);
de.setValue("" + riscontro);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_RISCONTRO);
dati.add(de);
/* Dettaglio */
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_MONITOR_DETTAGLIO);
de.setType(DataElementType.TITLE);
dati.add(de);
Dettaglio dettaglio = messaggio.getDettaglio();
// tipo
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO);
de.setType(DataElementType.TEXT);
de.setValue(dettaglio.getTipo());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO);
dati.add(de);
// idmodulo
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_MODULO );
de.setType(DataElementType.TEXT);
de.setValue(dettaglio.getIdModulo());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_MODULO);
dati.add(de);
// stato
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_STATO);
de.setType(DataElementType.TEXT);
if(messaggio.getStato()!=null)
de.setValue(messaggio.getStato().getValue());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_STATO);
dati.add(de);
if(dettaglio.getProprietaList()!=null && dettaglio.getProprietaList().size()>0){
for (int i = 0; i < dettaglio.getProprietaList().size(); i++) {
de = new DataElement();
de.setLabel(dettaglio.getProprietaList().get(i).getNome());
de.setType(DataElementType.TEXT);
de.setValue(dettaglio.getProprietaList().get(i).getValore());
de.setName(dettaglio.getProprietaList().get(i).getNome());
dati.add(de);
}
}
if(dettaglio.getIdCorrelazioneApplicativa()!=null){
// CorrelazioneApplicativa
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA);
de.setType(DataElementType.TEXT);
de.setValue(dettaglio.getIdCorrelazioneApplicativa());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA);
dati.add(de);
}
SimpleDateFormat formatter = DateUtils.getDefaultDateTimeFormatter("yyyy-MM-dd HH:mm:ss.SSS");
// ora registrazione
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ORA_REGISTRAZIONE);
de.setType(DataElementType.TEXT);
de.setValue(formatter.format(messaggio.getOraRegistrazione().getTime()));
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ORA_REGISTRAZIONE);
dati.add(de);
// ora attuale
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ORA_ATTUALE);
de.setType(DataElementType.TEXT);
de.setValue(formatter.format(messaggio.getOraAttuale().getTime()));
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ORA_ATTUALE);
dati.add(de);
String erroreProcessamento = dettaglio.getErroreProcessamento();
// servizi applicativi consegna
if (messaggio.getDettaglio().getServizioApplicativoConsegnaList().size()>0) {
// visualizzo i dettagli consegna
for (int i = 0; i < messaggio.getDettaglio().getServizioApplicativoConsegnaList().size(); i++) {
ServizioApplicativoConsegna sac1 = messaggio.getDettaglio().getServizioApplicativoConsegnaList().get(i);
erroreProcessamento = sac1.getErroreProcessamento();
String labelSA = null;
String nomeConnettore = null;
String labelErogazione = null;
if(sac1.getNomePorta()!=null) {
if(sac1.getNome()!=null) {
IDPortaApplicativa idPA = new IDPortaApplicativa();
idPA.setNome(sac1.getNomePorta());
if(paCore.existsPortaApplicativa(idPA)) {
PortaApplicativa pa = null;
try {
pa = paCore.getPortaApplicativa(idPA);
}catch(DriverConfigurazioneNotFound notF) {
// ignore
}
if(pa!=null) {
if(pa.getBehaviour()!=null) {
if(pa.sizeServizioApplicativoList()>0) {
for (int j = 0; j < pa.sizeServizioApplicativoList(); j++) {
PortaApplicativaServizioApplicativo pasa = pa.getServizioApplicativo(j);
if(pasa.getNome().equals(sac1.getNome())) {
if(pasa.getDatiConnettore()!=null) {
labelSA = pasa.getDatiConnettore().getNome();
}
else {
labelSA = CostantiConfigurazione.NOME_CONNETTORE_DEFAULT;
}
nomeConnettore = labelSA;
break;
}
}
}
}
else {
IDServizioApplicativo idSA = new IDServizioApplicativo();
idSA.setNome(sac1.getNome());
idSA.setIdSoggettoProprietario(new IDSoggetto(pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario()));
ServizioApplicativo sa = null;
try {
sa = saCore.getServizioApplicativo(idSA);
} catch (Exception notFound) {
// ignore
}
if(sa!=null) {
if(ServiziApplicativiCostanti.VALUE_SERVIZI_APPLICATIVI_TIPO_SERVER.equals(sa.getTipo())) {
labelSA = sac1.getNome();
}
}
}
if(labelErogazione==null) {
IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(pa.getServizio().getTipo(), pa.getServizio().getNome(),
pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario(),
pa.getServizio().getVersione());
String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(pa.getTipoSoggettoProprietario());
labelErogazione = monitorHelper.getLabelServizioErogazione(protocollo, idServizio);
}
}
}
}
}
de = new DataElement();
if(labelSA!=null) {
de.setLabel(MonitorCostanti.LABEL_MONITOR_DETTAGLI_CONSEGNA+" [" + labelSA + "]");
}
else {
de.setLabel(MonitorCostanti.LABEL_MONITOR_DETTAGLI_CONSEGNA);
}
de.setType(DataElementType.TITLE);
dati.add(de);
// erogazione
if(labelErogazione!=null || sac1.getNomePorta()!=null) {
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_CONSEGNA_PORTA);
de.setType(DataElementType.TEXT);
if(labelErogazione!=null) {
de.setValue(labelErogazione);
}
else {
de.setValue(sac1.getNomePorta());
}
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_CONSEGNA_PORTA);
dati.add(de);
}
if(nomeConnettore!=null) {
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_CONSEGNA_CONNETTORE);
de.setType(DataElementType.TEXT);
de.setValue(nomeConnettore);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_CONSEGNA_CONNETTORE);
dati.add(de);
}
// nome
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOME_CONSEGNA_APPLICATIVO_INTERNO);
de.setType(DataElementType.TEXT);
de.setValue(sac1.getNome());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_NOME_CONSEGNA_APPLICATIVO_INTERNO);
dati.add(de);
// tipo consegna
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_TIPO_CONSEGNA);
de.setType(DataElementType.TEXT);
de.setValue(sac1.getTipoConsegna());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO_CONSEGNA);
dati.add(de);
// errore processamento
if (erroreProcessamento != null) {
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ERRORE);
de.setValue(erroreProcessamento);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ERRORE);
if(erroreProcessamento!=null && !"".equals(erroreProcessamento)){
de.setType(DataElementType.TEXT_AREA_NO_EDIT);
de.setRows(6);
de.setCols(80);
}else{
de.setType(DataElementType.TEXT);
}
dati.add(de);
}
// data rispedizione
if(GestoreMessaggi.CONSEGNA_TRAMITE_CONNETTORE.equals(sac1.getTipoConsegna())){
if(sac1.getDataRispedizione()!=null) {
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CONSEGNA_DA);
de.setType(DataElementType.TEXT);
de.setValue(formatterRispedizione.format(sac1.getDataRispedizione()));
de.setName(MonitorCostanti.PARAMETRO_MONITOR_IN_CONSEGNA_DA);
dati.add(de);
}
// Priorita
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PRIORITA);
de.setType(DataElementType.TEXT);
de.setValue(sac1.getPriorita());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_PRIORITA);
dati.add(de);
// Coda
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_CODA);
de.setType(DataElementType.TEXT);
de.setValue(sac1.getCoda());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_CODA);
dati.add(de);
// In attesa esito sincrono
if(sac1.isAttesaEsito()) { // lo visualizzo solo se true
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ATTESA_ESITO);
de.setType(DataElementType.TEXT);
de.setValue(sac1.isAttesaEsito()+"");
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ATTESA_ESITO);
dati.add(de);
}
}
// integration manager
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_AUTORIZZAZIONE);
de.setType(DataElementType.TEXT);
de.setValue("" + sac1.isAutorizzazioneIntegrationManager());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_AUTORIZZAZIONE);
dati.add(de);
// sbustamento soap
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SBUSTAMENTO);
de.setType(DataElementType.TEXT);
de.setValue("" + sac1.isSbustamentoSoap());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_SBUSTAMENTO);
dati.add(de);
// sbustamento informazioni protocollo
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SBUSTAMENTO_INFORMAZIONI_PROTOCOLLO);
de.setType(DataElementType.TEXT);
de.setValue("" + sac1.isSbustamentoInformazioniProtocollo());
de.setName(MonitorCostanti.PARAMETRO_MONITOR_SBUSTAMENTO_INFORMAZIONI_PROTOCOLLO);
dati.add(de);
}
} else {
// Errore processamento
if(erroreProcessamento!=null && !"".equals(erroreProcessamento)){
de = new DataElement();
de.setLabel(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ERRORE );
de.setValue(erroreProcessamento);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ERRORE);
de.setType(DataElementType.TEXT_AREA_NO_EDIT);
de.setRows(6);
de.setCols(80);
dati.add(de);
}
}
pd.setDati(dati);
pd.setMode(Costanti.DATA_ELEMENT_EDIT_MODE_DISABLE_NAME);
} catch (Exception e) {
throw new Exception(e);
}
}
private void showStatoConsegneAsincrone(PageData pd, MonitorHelper monitorHelper, StatoConsegneAsincrone statoConsegneAsincrone,
String methodName, MonitorFormBean monitorFormBean)
throws Exception {
try {
pd.setPaginazione(false);
pd.setSearch("off");
// setto la barra del titolo
List<Parameter> lstParam = new ArrayList<>();
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR, MonitorCostanti.SERVLET_NAME_MONITOR,
this.createSearchString(monitorFormBean).toArray(new Parameter[lstParam.size()])));
lstParam.add(new Parameter(methodName, null));
ServletUtils.setPageDataTitle(pd, lstParam);
monitorHelper.makeMenu();
List<String> labels = new ArrayList<>();
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOW);
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SERVIZIO_APPLICATIVO);
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA);
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_RICONSEGNA);
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_MESSAGE_BOX);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA_VECCHIO);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CODA_RECENTE);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_RICONSEGNA_VECCHIO);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_RICONSEGNA_RECENTE);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_MESSAGE_BOX_VECCHIO);
// labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_MESSAGE_BOX_RECENTE);
pd.setLabels(labels.toArray(new String[1]));
List<List<DataElement>> dati = new ArrayList<>();
if (statoConsegneAsincrone != null && statoConsegneAsincrone.size()>0) {
// aggiungo i messaggi
DataElement de = null;
// Dichiaro il formatter per la data
SimpleDateFormat formatter = DateUtils.getDefaultDateTimeFormatter("yyyy-MM-dd HH:mm");
SoggettiCore soggettiCore = new SoggettiCore(monitorCore);
List<String> servizi = statoConsegneAsincrone.getServiziApplicativi();
for (String servizioApplicativo : servizi) {
List<DataElement> e = new ArrayList<>();
StatoConsegnaAsincrona stato = statoConsegneAsincrone.getStato(servizioApplicativo);
// de = new DataElement();
// de.setValue(formatter.format(stato.getNow()));
// e.add(de);
de = new DataElement();
IDServizio idServizio = monitorCore.getLabelNomeServizioApplicativo(stato.getServizioApplicativo());
if(idServizio==null) {
de.setValue(stato.getServizioApplicativo());
}
else {
String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(idServizio.getSoggettoErogatore().getTipo());
String nomeErogazione = monitorHelper.getLabelServizioErogazione(protocollo, idServizio);
if(idServizio.getAzione()!=null) {
de.setValue(idServizio.getAzione()+" di "+nomeErogazione);
}
else {
de.setValue(nomeErogazione);
}
}
de.setToolTip(MonitorCostanti.LABEL_PARAMETRO_MONITOR_NOW+": "+formatter.format(stato.getNow()));
e.add(de);
de = new DataElement();
if(stato.getInCoda()>0) {
StringBuilder sb = new StringBuilder();
sb.append("<b>").append(stato.getInCoda()).append("</b> ");
if(stato.getVecchioInCoda()!=null) {
sb.append(" ("). //append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_VECCHIO).
append(formatter.format(stato.getVecchioInCoda()));
}
if(stato.getRecenteInCoda()!=null) {
if(stato.getVecchioInCoda()!=null) {
sb.append(" -");
}
sb.append(" "). //.append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RECENTE).
append(formatter.format(stato.getRecenteInCoda())).
append(")");
}
de.setValue(sb.toString());
}
else {
de.setValue(stato.getInCoda()+"");
}
e.add(de);
de = new DataElement();
if(stato.getInRiconsegna()>0) {
StringBuilder sb = new StringBuilder();
sb.append("<b>").append(stato.getInRiconsegna()).append("</b> ");
if(stato.getVecchioInRiconsegna()!=null) {
sb.append(" ("). //append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_VECCHIO).
append(formatter.format(stato.getVecchioInRiconsegna()));
}
if(stato.getRecenteInRiconsegna()!=null) {
if(stato.getVecchioInRiconsegna()!=null) {
sb.append(" -");
}
sb.append(" "). //.append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RECENTE).
append(formatter.format(stato.getRecenteInRiconsegna())).
append(")");
}
de.setValue(sb.toString());
}
else {
de.setValue(stato.getInRiconsegna()+"");
}
e.add(de);
de = new DataElement();
if(stato.getInMessageBox()>0) {
StringBuilder sb = new StringBuilder();
sb.append("<b>").append(stato.getInMessageBox()).append("</b> ");
if(stato.getVecchioInMessageBox()!=null) {
sb.append(" ("). //append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_VECCHIO).
append(formatter.format(stato.getVecchioInMessageBox()));
}
if(stato.getRecenteInMessageBox()!=null) {
if(stato.getVecchioInMessageBox()!=null) {
sb.append(" -");
}
sb.append(" "). //.append("<BR/>").
//append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RECENTE).
append(formatter.format(stato.getRecenteInMessageBox())).
append(")");
}
de.setValue(sb.toString());
}
else {
de.setValue(stato.getInMessageBox()+"");
}
e.add(de);
dati.add(e);
}
}
pd.setSelect(false);
pd.setRemoveButton(false);
pd.setAddButton(false);
pd.setDati(dati);
} catch (Exception e) {
throw new Exception(e);
}
}
private void showMessaggi(PageData pd, MonitorHelper monitorHelper, long countMessaggi, List<Messaggio> listaMessaggi,
String methodName, ConsoleSearch ricerca, FilterSearch filterSearch, MonitorFormBean monitorFormBean)
throws Exception {
try {
// index e pagesize non sono utilizzate
// ma bisogna settarla comunque
int idLista = Liste.MONITOR_MSG;
int limit = ricerca.getPageSize(idLista);
int offset = ricerca.getIndexIniziale(idLista);
// String search =
// (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" :
// ricerca.getSearchString(idLista));
pd.setIndex(offset);
pd.setPageSize(limit);
pd.setSearch("off");
int totMsg = (int) countMessaggi;
pd.setNumEntries(totMsg);
// setto la barra del titolo
List<Parameter> lstParam = new ArrayList<>();
lstParam.add(new Parameter(MonitorCostanti.LABEL_MONITOR, MonitorCostanti.SERVLET_NAME_MONITOR,
this.createSearchString(monitorFormBean).toArray(new Parameter[lstParam.size()])));
lstParam.add(new Parameter(methodName, null));
ServletUtils.setPageDataTitle(pd, lstParam);
monitorHelper.makeMenu();
// preparo string filtro ricerca
Busta busta = filterSearch.getBusta();
BustaServizio servizio = (busta != null ? busta.getServizio() : null);
BustaSoggetto mittente = (busta != null ? busta.getMittente() : null);
BustaSoggetto destinatario = (busta != null ? busta.getDestinatario() : null);
String profilo = (busta != null ? busta.getProfiloCollaborazione() : null);
String azione = (busta != null ? busta.getAzione() : null);
String idMessaggio = filterSearch.getIdMessaggio();
//String msgPattern = filterSearch.getMessagePattern();
String correlazioneApplicativa = filterSearch.getCorrelazioneApplicativa();
long soglia = filterSearch.getSoglia();
boolean riscontro = (busta != null ? busta.isAttesaRiscontro() : false);
String _mittente = null;
if(mittente!=null) {
_mittente = this.getIntestazioneFiltroRicerca(mittente.getTipo(), mittente.getNome());
}
String _destinatario = null;
if(destinatario!=null) {
_destinatario = this.getIntestazioneFiltroRicerca(destinatario.getTipo(), destinatario.getNome());
}
String _servizio = null;
if(servizio!=null) {
_servizio = this.getIntestazioneFiltroRicerca(servizio.getTipo(), servizio.getNome());
}
if(servizio!=null && servizio.getVersione()!=null) {
if(_servizio!=null) {
_servizio = _servizio + " v"+servizio.getVersione().intValue();
}
else {
_servizio = "v"+servizio.getVersione().intValue();
}
}
StringBuilder parametriFiltro = new StringBuilder();
if (correlazioneApplicativa != null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_CORRELAZIONE_APPLICATIVA).append("=").append(correlazioneApplicativa);
}
// if ((msgPattern != null) && !msgPattern.equals("")) {
// if(parametriFiltro.length()>0) {
// parametriFiltro.append(" and ");
// }
// parametriFiltro.append(MonitorCostanti.PARAMETRO_MONITOR_PATTERN, msgPattern ));
// }
if (soglia > 0) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SOGLIA_LABEL).append("=").append(soglia + "");
}
if(monitorCore.isShowJ2eeOptions()) {
if (filterSearch.getStato()!=null && !"".equals(filterSearch.getStato().getValue()) && !MonitorCostanti.DEFAULT_VALUE_PARAMETRO_STATO_NONE.equals(filterSearch.getStato().getValue())) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_STATO).append("=").append(filterSearch.getStato() + "");
}
}
if (idMessaggio!=null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ID_MESSAGGIO).append("=").append(idMessaggio);
}
if(busta!=null){
if (profilo != null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_PROFILO).append("=").append(profilo);
}
if (riscontro) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_RISCONTRO).append("=").append(riscontro + "");
}
if (_mittente != null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_MITTENTE).append("=").append(_mittente);
}
if (_destinatario != null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_DESTINATARIO).append("=").append(_destinatario);
}
if (_servizio != null) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_SERVIZIO).append("=").append(_servizio);
}
if ((azione != null) && !azione.equals("")) {
if(parametriFiltro.length()>0) {
parametriFiltro.append(" and ");
}
parametriFiltro.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_AZIONE).append("=").append(azione );
}
}
// se ci sono opzioni di filtraggio impostate allora visualizzo il
// filtro
if (parametriFiltro.length() > 0) {
StringBuilder sb = new StringBuilder("Filtro: ");
sb.append(parametriFiltro.toString());
pd.setMessage(sb.toString(), Costanti.MESSAGE_TYPE_INFO);
}
List<String> labels = new ArrayList<>();
//labels.add(MonitorCostanti.LABEL_MONITOR_IDMESSAGGIO);
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_ORA_REGISTRAZIONE);
if(monitorCore.isShowJ2eeOptions()) {
labels.add(MonitorCostanti.LABEL_PARAMETRO_MONITOR_STATO);
}
labels.add(MonitorCostanti.LABEL_MONITOR_EROGAZIONE);
labels.add(MonitorCostanti.LABEL_MONITOR_DETTAGLIO);
pd.setLabels(labels.toArray(new String[1]));
List<List<DataElement>> dati = new ArrayList<>();
boolean existsMessaggioInConsegna = false;
if (listaMessaggi != null) {
// aggiungo i messaggi
DataElement de = null;
// Dichiaro il formatter per la data
SimpleDateFormat formatter = DateUtils.getDefaultDateTimeFormatter("yyyy-MM-dd HH:mm");
SimpleDateFormat formatterRispedizione = DateUtils.getDefaultDateTimeFormatter("yyyy-MM-dd HH:mm:ss");
Map<String,PortaApplicativa> mapPA = new HashMap<>();
Map<String,Boolean> mapConsegnaMultipla = new HashMap<>();
Map<String,Boolean> mapServer = new HashMap<>();
Map<String,String> mapConnettori = new HashMap<>();
Map<String,String> mapEndpointConnettori = new HashMap<>();
Map<String,String> mapErogazione = new HashMap<>();
PorteApplicativeCore paCore = new PorteApplicativeCore(monitorCore);
ServiziApplicativiCore saCore = new ServiziApplicativiCore(monitorCore);
SoggettiCore soggettiCore = new SoggettiCore(monitorCore);
for (int i = 0; i < listaMessaggi.size(); i++) {
List<DataElement> e = new ArrayList<>();
Messaggio messaggio = listaMessaggi.get(i);
String tipo = messaggio.getDettaglio() != null ? messaggio.getDettaglio().getTipo() : "";
de = new DataElement();
String pdd = "";
if(monitorFormBean.getPdd()!=null && !"".equals(monitorFormBean.getPdd())){
pdd = monitorFormBean.getPdd();
}
String sorgente = "";
if(monitorFormBean.getSorgenteDati()!=null && !"".equals(monitorFormBean.getSorgenteDati())){
sorgente = monitorFormBean.getSorgenteDati();
}
de.setUrl(
MonitorCostanti.SERVLET_NAME_MONITOR,
new Parameter(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO, messaggio.getIdMessaggio()),
new Parameter(MonitorCostanti.PARAMETRO_MONITOR_METHOD, MonitorCostanti.DEFAULT_VALUE_FORM_BEAN_METHOD_DETAILS),
new Parameter(MonitorCostanti.PARAMETRO_MONITOR_TIPO, tipo),
new Parameter(MonitorCostanti.PARAMETRO_MONITOR_PDD, pdd),
new Parameter(MonitorCostanti.PARAMETRO_MONITOR_SORGENTE, sorgente)
);
//de.setValue(messaggio.getIdMessaggio());
//NON SERVE SALVO IL PAGE DATA //de.setIdToRemove(messaggio.getIdMessaggio());
de.setToolTip(messaggio.getIdMessaggio());
//e.add(de);
// Ora Registrazione come label
Date oraRegistrazione = messaggio.getOraRegistrazione();
//de = new DataElement();
de.setValue(formatter.format(oraRegistrazione));
e.add(de);
// serve per l'eliminazione (posizione 2 e 3)
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_ID_MESSAGGIO);
de.setValue(messaggio.getIdMessaggio());
e.add(de);
de = new DataElement();
de.setType(DataElementType.HIDDEN);
de.setName(MonitorCostanti.PARAMETRO_MONITOR_TIPO);
de.setValue(tipo);
e.add(de);
// Stato
if(monitorCore.isShowJ2eeOptions()) {
de = new DataElement();
StatoMessaggio stato = messaggio.getStato();
String statoS = "";
if(stato!=null)
statoS = stato.getValue();
de.setValue(statoS);
e.add(de);
}
// Erogazione
Dettaglio dettaglio = messaggio.getDettaglio();
String nomeErogazione = null;
Boolean consegnaMultipla = null;
String nomePortaSac0 = null;
if (dettaglio != null) {
if (dettaglio.getServizioApplicativoConsegnaList().size()>0) {
ServizioApplicativoConsegna sac0 = messaggio.getDettaglio().getServizioApplicativoConsegnaList().get(0); // prendo il prima, la porta e' uguale per tutti
nomePortaSac0 = sac0.getNomePorta();
nomeErogazione = mapErogazione.get(sac0.getNomePorta());
consegnaMultipla = mapConsegnaMultipla.get(sac0.getNomePorta());
if(nomeErogazione==null || consegnaMultipla==null) {
PortaApplicativa pa = mapPA.get(sac0.getNomePorta());
if(pa==null) {
IDPortaApplicativa idPA = new IDPortaApplicativa();
idPA.setNome(sac0.getNomePorta());
try {
pa = paCore.getPortaApplicativa(idPA);
mapPA.put(sac0.getNomePorta(),pa);
} catch (DriverConfigurazioneNotFound notFound) {
// ignore
}
}
if(pa!=null) {
if(nomeErogazione==null) {
IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(pa.getServizio().getTipo(), pa.getServizio().getNome(),
pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario(),
pa.getServizio().getVersione());
String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(pa.getTipoSoggettoProprietario());
nomeErogazione = monitorHelper.getLabelServizioErogazione(protocollo, idServizio);
if(nomeErogazione!=null) {
mapErogazione.put(sac0.getNomePorta(), nomeErogazione);
}
}
if(consegnaMultipla==null) {
consegnaMultipla = pa.getBehaviour()!=null;
mapConsegnaMultipla.put(sac0.getNomePorta(), consegnaMultipla);
}
}
}
}
}
de = new DataElement();
if(nomeErogazione!=null) {
de.setValue(nomeErogazione);
}
else if(nomePortaSac0!=null) {
de.setValue(nomePortaSac0);
}
else {
de.setValue("-");
}
e.add(de);
// Dettaglio
StringBuilder sbDestinatari = new StringBuilder();
if (dettaglio != null) {
if (dettaglio.getServizioApplicativoConsegnaList().size()>0) {
// visualizzo i dettagli consegna
for (int j = 0; j < messaggio.getDettaglio().getServizioApplicativoConsegnaList().size(); j++) {
ServizioApplicativoConsegna sac = messaggio.getDettaglio().getServizioApplicativoConsegnaList().get(j);
String nome = sac.getNome();
Boolean isServer = null;
String nomeConnettore = null;
String endpointConnettore = null;
if(sac.getNomePorta()!=null) {
String keyPorta = sac.getNomePorta()+"#"+nome;
isServer = mapServer.get(keyPorta);
nomeConnettore = mapConnettori.get(keyPorta);
endpointConnettore = mapEndpointConnettori.get(keyPorta);
if(nomeConnettore==null) {
PortaApplicativa pa = mapPA.get(sac.getNomePorta());
if(pa==null) {
IDPortaApplicativa idPA = new IDPortaApplicativa();
idPA.setNome(sac.getNomePorta());
try {
pa = paCore.getPortaApplicativa(idPA);
mapPA.put(sac.getNomePorta(),pa);
} catch (DriverConfigurazioneNotFound notFound) {
// ignore
}
}
if(pa!=null && pa.getBehaviour() != null) {
if(pa.sizeServizioApplicativoList()>0) {
for (int k = 0; k < pa.sizeServizioApplicativoList(); k++) {
PortaApplicativaServizioApplicativo pasa = pa.getServizioApplicativo(k);
if(pasa.getNome().equals(nome)) {
if(pasa.getDatiConnettore()!=null) {
nomeConnettore = pasa.getDatiConnettore().getNome();
}
break;
}
}
}
}
if(nomeConnettore!=null) {
mapConnettori.put(keyPorta,nomeConnettore);
}
}
if(nomeConnettore==null) {
if(isServer==null) {
PortaApplicativa pa = mapPA.get(sac.getNomePorta());
if(pa==null) {
IDPortaApplicativa idPA = new IDPortaApplicativa();
idPA.setNome(sac.getNomePorta());
try {
pa = paCore.getPortaApplicativa(idPA);
mapPA.put(sac.getNomePorta(),pa);
} catch (DriverConfigurazioneNotFound notFound) {
// ignore
}
}
if(pa!=null) {
IDServizioApplicativo idSA = new IDServizioApplicativo();
idSA.setNome(nome);
idSA.setIdSoggettoProprietario(new IDSoggetto(pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario()));
ServizioApplicativo sa = null;
try {
sa = saCore.getServizioApplicativo(idSA);
} catch (Exception notFound) {
// ignore
}
if(sa!=null) {
isServer = ServiziApplicativiCostanti.VALUE_SERVIZI_APPLICATIVI_TIPO_SERVER.equals(sa.getTipo());
mapServer.put(keyPorta, isServer);
}
}
}
}
if(endpointConnettore==null && GestoreMessaggi.CONSEGNA_TRAMITE_CONNETTORE.equals(sac.getTipoConsegna())) {
PortaApplicativa pa = mapPA.get(sac.getNomePorta());
if(pa==null) {
IDPortaApplicativa idPA = new IDPortaApplicativa();
idPA.setNome(sac.getNomePorta());
try {
pa = paCore.getPortaApplicativa(idPA);
mapPA.put(sac.getNomePorta(),pa);
} catch (DriverConfigurazioneNotFound notFound) {
// ignore
}
}
if(pa!=null) {
IDServizioApplicativo idSA = new IDServizioApplicativo();
idSA.setNome(nome);
idSA.setIdSoggettoProprietario(new IDSoggetto(pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario()));
ServizioApplicativo sa = null;
try {
sa = saCore.getServizioApplicativo(idSA);
} catch (Exception notFound) {
// ignore
}
if(sa!=null) {
endpointConnettore = monitorHelper.getLabelConnettore(sa.getInvocazioneServizio(),false,false);
mapEndpointConnettori.put(keyPorta, endpointConnettore);
}
}
}
}
if(consegnaMultipla!=null && consegnaMultipla) {
if(j>0) {
sbDestinatari.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
}
sbDestinatari.append("<b>");
if(isServer!=null && isServer) {
sbDestinatari.append(nome);
}
else if(nomeConnettore!=null) {
sbDestinatari.append(nomeConnettore);
}
else {
sbDestinatari.append(nome);
}
sbDestinatari.append("</b>");
sbDestinatari.append(". ");
}
boolean appenaPresoInCarico = false;
if(GestoreMessaggi.CONSEGNA_TRAMITE_CONNETTORE.equals(sac.getTipoConsegna())){
existsMessaggioInConsegna=true;
if(TimerConsegnaContenutiApplicativiThread.ID_MODULO.equals(sac.getErroreProcessamento())) {
appenaPresoInCarico = true;
sbDestinatari.append("In coda in attesa di essere gestito");
}
else {
if(sac.getDataRispedizione()!=null) {
sbDestinatari.append(MonitorCostanti.LABEL_PARAMETRO_MONITOR_IN_CONSEGNA_DA).append(": ").
append(formatterRispedizione.format(sac.getDataRispedizione()));
}
}
if(endpointConnettore!=null) {
int maxLengthConnettore = 200;
sbDestinatari.append("<BR/>- endpoint: ");
if(endpointConnettore.length()>maxLengthConnettore) {
sbDestinatari.append(endpointConnettore.substring(0, maxLengthConnettore-2)+"...");
}
else {
sbDestinatari.append(endpointConnettore);
}
}
}
else if(GestoreMessaggi.CONSEGNA_TRAMITE_INTEGRATION_MANAGER.equals(sac.getTipoConsegna())){
sbDestinatari.append("Disponibile tramite "+ServiziApplicativiCostanti.LABEL_SERVIZIO_MESSAGE_BOX);
}
else if(GestoreMessaggi.CONSEGNA_TRAMITE_CONNECTION_REPLY.equals(sac.getTipoConsegna())){
sbDestinatari.append(GestoreMessaggi.CONSEGNA_TRAMITE_CONNECTION_REPLY.toLowerCase());
}
if(!appenaPresoInCarico && sac.getErroreProcessamento()!=null){
String erroreProcessamento = sac.getErroreProcessamento();
sbDestinatari.append("<BR/>- errore: ");
int maxLengthErroreProcessamento = 200;
if(erroreProcessamento.length()>maxLengthErroreProcessamento) {
sbDestinatari.append(erroreProcessamento.substring(0, maxLengthErroreProcessamento-2)+"...");
}
else {
sbDestinatari.append(erroreProcessamento);
}
}
}
}
}
de = new DataElement();
de.setValue(sbDestinatari.toString());
e.add(de);
dati.add(e);
}
}
// aggiungo la matrice delle informazioni
// pd.setSelect(false);
// pd.setRemoveButton(true);
pd.setAddButton(false);
if (listaMessaggi != null && !listaMessaggi.isEmpty() && existsMessaggioInConsegna) {
List<AreaBottoni> bottoni = new ArrayList<>();
AreaBottoni ab = new AreaBottoni();
List<DataElement> otherbott = new ArrayList<>();
DataElement de = new DataElement();
de.setValue(MonitorCostanti.LABEL_ACTION_RICONSEGNA_IMMEDIATA);
de.setOnClick(MonitorCostanti.ACTION_RICONSEGNA_IMMEDIATA_ONCLICK);
de.setDisabilitaAjaxStatus();
otherbott.add(de);
ab.setBottoni(otherbott);
bottoni.add(ab);
pd.setAreaBottoni(bottoni);
}
pd.setDati(dati);
} catch (Exception e) {
throw new Exception(e);
}
}
private String getIntestazioneFiltroRicerca(String tipo, String nome) {
if(tipo!=null && StringUtils.isNotEmpty(tipo) && nome!=null && StringUtils.isNotEmpty(nome)) {
return tipo + "/" + nome;
}
else if(nome!=null && StringUtils.isNotEmpty(nome)) {
return nome;
}
else if(tipo!=null && StringUtils.isNotEmpty(tipo)) {
return "tipo "+tipo;
}
return null;
}
}