EsitiPropertiesSQLInitializer.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.protocol.utils;

  21. import java.util.List;

  22. import org.openspcoop2.core.constants.CostantiDB;
  23. import org.openspcoop2.utils.LoggerWrapperFactory;
  24. import org.openspcoop2.utils.resources.FileSystemUtilities;
  25. import org.openspcoop2.utils.resources.Loader;
  26. import org.slf4j.Logger;

  27. /**
  28.  * EsitiPropertiesSQLInitializer
  29.  *
  30.  * @author Poli Andrea (apoli@link.it)
  31.  * @author $Author$
  32.  * @version $Rev$, $Date$
  33.  */
  34. public class EsitiPropertiesSQLInitializer {

  35.     private static Logger log = LoggerWrapperFactory.getLogger(EsitiPropertiesSQLInitializer.class);
  36.    
  37.     public static void main(String[] args) throws Exception {
  38.        
  39.         String file = "/var/tmp/ArchivioTransazioni_data.sql";
  40.         if(args.length>0) {
  41.             file = args[0];
  42.         }
  43.        
  44.         EsitiProperties.initialize(null, log, new Loader(), null);
  45.        
  46.         EsitiProperties esitiProperties = EsitiProperties.getInstance(log, EsitiProperties.NO_PROTOCOL_CONFIG);
  47.        
  48.         StringBuilder sbInit = new StringBuilder();
  49.        
  50.         String completateConSuccesso = "Completata con Successo";
  51.         String faultApplicativo = "Fault Applicativo";
  52.         String richiestaScartata = "Richiesta Scartata";
  53.         String erroriConsegna = "Errore di Consegna";
  54.         String autorizzazioneNegata = "Autorizzazione Negata";
  55.         String policyViolata = "Policy Controllo Traffico Violate";
  56.         String erroriIM = "Errori Servizio IntegrationManager/MessageBox";
  57.         String erroriRichiesta = "Errori Processamento Richiesta";
  58.         String erroriRisposta = "Errori Processamento Risposta";
  59.         String erroreGenerico = "Errore Generico";
  60.         String erroreClientNonDisponibile = "Errore Client Indisponibile";
  61.        
  62.         int completateConSuccesso_code = 1;
  63.         int faultApplicativo_code = 2;
  64.         int richiestaScartata_code = 3;
  65.         int erroriConsegna_code = 4;
  66.         int autorizzazioneNegata_code = 5;
  67.         int policyViolata_code = 6;
  68.         int erroriIM_code = 7;
  69.         int erroriRichiesta_code = 8;
  70.         int erroriRisposta_code = 9;
  71.         int erroreGenerico_code = 10;
  72.         int erroreClientNonDisponibile_code = 11;
  73.        
  74.         sbInit.append("-- classe esiti\n");
  75.         sbInit.append(buildClassInsert(completateConSuccesso_code, completateConSuccesso));
  76.         sbInit.append("\n");
  77.         sbInit.append(buildClassInsert(faultApplicativo_code, faultApplicativo));
  78.         sbInit.append("\n");
  79.         sbInit.append(buildClassInsert(richiestaScartata_code, richiestaScartata));
  80.         sbInit.append("\n");
  81.         sbInit.append(buildClassInsert(erroriConsegna_code, erroriConsegna));
  82.         sbInit.append("\n");
  83.         sbInit.append(buildClassInsert(autorizzazioneNegata_code, autorizzazioneNegata));
  84.         sbInit.append("\n");
  85.         sbInit.append(buildClassInsert(policyViolata_code, policyViolata));
  86.         sbInit.append("\n");
  87.         sbInit.append(buildClassInsert(erroriIM_code, erroriIM));
  88.         sbInit.append("\n");
  89.         sbInit.append(buildClassInsert(erroriRichiesta_code, erroriRichiesta));
  90.         sbInit.append("\n");
  91.         sbInit.append(buildClassInsert(erroriRisposta_code, erroriRisposta));
  92.         sbInit.append("\n");
  93.         sbInit.append(buildClassInsert(erroreGenerico_code, erroreGenerico));
  94.         sbInit.append("\n");
  95.         sbInit.append(buildClassInsert(erroreClientNonDisponibile_code, erroreClientNonDisponibile));
  96.         sbInit.append("\n");

  97.        
  98.         sbInit.append("\n");
  99.         sbInit.append("-- esiti\n");
  100.         List<Integer> codes = esitiProperties.getEsitiCode();
  101.         for (Integer code : codes) {
  102.            
  103.             int classCode = -1;
  104.             if(esitiProperties.getEsitiCodeOk_senzaFaultApplicativo().contains(code)) {
  105.                 classCode = completateConSuccesso_code; // Completata con Successo
  106.             }
  107.             else if(esitiProperties.getEsitiCodeFaultApplicativo().contains(code)) {
  108.                 classCode = faultApplicativo_code; // Fault Applicativo
  109.             }
  110.             else if(esitiProperties.getEsitiCodeRichiestaScartate().contains(code)) {
  111.                 classCode = richiestaScartata_code; // Richiesta Scartata
  112.             }
  113.             else if(esitiProperties.getEsitiCodeErroriConsegna().contains(code)) {
  114.                 classCode = erroriConsegna_code; // Errore di Consegna
  115.             }
  116.             else if(esitiProperties.getEsitiCodeAutorizzazioneNegata().contains(code)) {
  117.                 classCode = autorizzazioneNegata_code; // Autorizzazione Negata
  118.             }
  119.             else if(esitiProperties.getEsitiCodeControlloTrafficoPolicyViolate().contains(code)) {
  120.                 classCode = policyViolata_code; // Policy Controllo Traffico Violate
  121.             }
  122.             else if(esitiProperties.getEsitiCodeServizioIntegrationManager().contains(code)) {
  123.                 classCode = erroriIM_code; // Errori Servizio I.M. MessageBox
  124.             }
  125.             else if(esitiProperties.getEsitiCodeErroriProcessamentoRichiesta().contains(code)) {
  126.                 classCode = erroriRichiesta_code; // Errori Processamento Richiesta
  127.             }
  128.             else if(esitiProperties.getEsitiCodeErroriProcessamentoRisposta().contains(code)) {
  129.                 classCode = erroriRisposta_code; // Errori Processamento Risposta
  130.             }
  131.             else if(esitiProperties.getEsitiCodeErroriClientNonDisponibile().contains(code)) {
  132.                 classCode = erroreClientNonDisponibile_code; // Errore Client Indisponibile
  133.             }
  134.             else if(esitiProperties.getEsitiCodeErroriGenerici().contains(code)) {
  135.                 classCode = erroreGenerico_code; // Errore Generico
  136.             }
  137.             else {
  138.                 throw new Exception("Classificazione del codice '"+code+"' non riuscita");
  139.             }
  140.                        
  141.             StringBuilder sb = new StringBuilder("INSERT INTO ");
  142.             sb.append(CostantiDB.TRANSAZIONI_ESITI);
  143.             sb.append(" (govway_status, govway_status_key, govway_status_detail, govway_status_description, govway_status_class) VALUES ( ");
  144.             sb.append(code);
  145.             sb.append(" , ");
  146.             sb.append("'").append(esitiProperties.getEsitoName(code).replaceAll("'", "''")).append("'");
  147.             sb.append(" , ");
  148.             sb.append("'").append(esitiProperties.getEsitoLabel(code).replaceAll("'", "''")).append("'");
  149.             sb.append(" , ");
  150.             sb.append("'").append(esitiProperties.getEsitoDescription(code).replaceAll("'", "''")).append("'");
  151.             sb.append(" , ");
  152.             sb.append("(select id from ").append(CostantiDB.TRANSAZIONI_CLASSE_ESITI).append(" WHERE govway_status="+classCode+")");
  153.             sb.append(" );");
  154.            
  155.             sbInit.append(sb.toString());
  156.             sbInit.append("\n");
  157.         }
  158.        

  159.         FileSystemUtilities.writeFile(file, sbInit.toString().getBytes());
  160.         System.out.println("Script di inizializzazione serializzato in '"+file+"'");

  161.        
  162.     }
  163.    
  164.     private static String buildClassInsert(int code, String detail) {
  165.         StringBuilder sb = new StringBuilder("INSERT INTO ");
  166.         sb.append(CostantiDB.TRANSAZIONI_CLASSE_ESITI);
  167.         sb.append(" (govway_status, govway_status_detail) VALUES ( ");
  168.         sb.append(code);
  169.         sb.append(" , ");
  170.         sb.append("'").append(detail).append("'");
  171.         sb.append(" );");
  172.         return sb.toString();
  173.     }

  174. }