DriverConfigurazioneDBUtils.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.core.config.driver.db;

  21. import java.sql.Connection;
  22. import java.sql.PreparedStatement;
  23. import java.sql.ResultSet;
  24. import java.sql.SQLException;
  25. import java.sql.Statement;

  26. import org.openspcoop2.core.commons.CoreException;
  27. import org.openspcoop2.core.config.ProprietaOggetto;
  28. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  29. import org.openspcoop2.core.constants.CostantiDB;
  30. import org.openspcoop2.utils.UtilsMultiException;
  31. import org.openspcoop2.utils.jdbc.JDBCUtilities;
  32. import org.openspcoop2.utils.sql.ISQLQueryObject;
  33. import org.openspcoop2.utils.sql.SQLObjectFactory;

  34. /**
  35.  * DriverConfigurazioneDB_utilsDriver
  36.  *
  37.  *
  38.  * @author Sandra Giangrandi (sandra@link.it)
  39.  * @author Stefano Corallo (corallo@link.it)
  40.  * @author $Author$
  41.  * @version $Rev$, $Date$
  42.  */
  43. public class DriverConfigurazioneDBUtils {
  44.    
  45.     private DriverConfigurazioneDB driver = null;
  46.    
  47.     protected DriverConfigurazioneDBUtils(DriverConfigurazioneDB driver) {
  48.         this.driver = driver;
  49.     }
  50.    
  51.     protected void reset() throws DriverConfigurazioneException {
  52.         this.reset(true);
  53.     }
  54.     protected void reset(boolean resetConfigurazione) throws DriverConfigurazioneException{
  55.         Connection con = null;
  56.         boolean error = false;
  57.         PreparedStatement stmt=null;
  58.         String updateString;

  59.         if (this.driver.atomica) {
  60.             try {
  61.                 con = this.driver.getConnectionFromDatasource("reset");
  62.                 con.setAutoCommit(false);
  63.             } catch (Exception e) {
  64.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::reset] Exception accedendo al datasource :" + e.getMessage(),e);

  65.             }

  66.         } else
  67.             con = this.driver.globalConnection;

  68.         try {

  69.             ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  70.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TOKEN_RUOLI);
  71.             updateString = sqlQueryObject.createSQLDelete();
  72.             stmt = con.prepareStatement(updateString);
  73.             stmt.executeUpdate();
  74.             stmt.close();
  75.            
  76.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  77.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TOKEN_SA);
  78.             updateString = sqlQueryObject.createSQLDelete();
  79.             stmt = con.prepareStatement(updateString);
  80.             stmt.executeUpdate();
  81.             stmt.close();
  82.            
  83.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  84.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_ATTRIBUTE_AUTHORITY);
  85.             updateString = sqlQueryObject.createSQLDelete();
  86.             stmt = con.prepareStatement(updateString);
  87.             stmt.executeUpdate();
  88.             stmt.close();
  89.            
  90.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  91.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_HANDLERS);
  92.             updateString = sqlQueryObject.createSQLDelete();
  93.             stmt = con.prepareStatement(updateString);
  94.             stmt.executeUpdate();
  95.             stmt.close();
  96.            
  97.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  98.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SA_AUTORIZZATI);
  99.             updateString = sqlQueryObject.createSQLDelete();
  100.             stmt = con.prepareStatement(updateString);
  101.             stmt.executeUpdate();
  102.             stmt.close();
  103.            
  104.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  105.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SOGGETTI);
  106.             updateString = sqlQueryObject.createSQLDelete();
  107.             stmt = con.prepareStatement(updateString);
  108.             stmt.executeUpdate();
  109.             stmt.close();
  110.            
  111.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  112.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_RUOLI);
  113.             updateString = sqlQueryObject.createSQLDelete();
  114.             stmt = con.prepareStatement(updateString);
  115.             stmt.executeUpdate();
  116.             stmt.close();
  117.            
  118.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  119.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SCOPE);
  120.             updateString = sqlQueryObject.createSQLDelete();
  121.             stmt = con.prepareStatement(updateString);
  122.             stmt.executeUpdate();
  123.             stmt.close();
  124.            
  125.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  126.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_AZIONI);
  127.             updateString = sqlQueryObject.createSQLDelete();
  128.             stmt = con.prepareStatement(updateString);
  129.             stmt.executeUpdate();
  130.             stmt.close();

  131.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  132.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SA_PROPS);
  133.             updateString = sqlQueryObject.createSQLDelete();
  134.             stmt = con.prepareStatement(updateString);
  135.             stmt.executeUpdate();
  136.             stmt.close();
  137.            
  138.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  139.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SA);
  140.             updateString = sqlQueryObject.createSQLDelete();
  141.             stmt = con.prepareStatement(updateString);
  142.             stmt.executeUpdate();
  143.             stmt.close();
  144.            
  145.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  146.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_BEHAVIOUR_PROPS);
  147.             updateString = sqlQueryObject.createSQLDelete();
  148.             stmt = con.prepareStatement(updateString);
  149.             stmt.executeUpdate();
  150.             stmt.close();

  151.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  152.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_AUTENTICAZIONE_PROP);
  153.             updateString = sqlQueryObject.createSQLDelete();
  154.             stmt = con.prepareStatement(updateString);
  155.             stmt.executeUpdate();
  156.             stmt.close();
  157.            
  158.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  159.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_AUTORIZZAZIONE_PROP);
  160.             updateString = sqlQueryObject.createSQLDelete();
  161.             stmt = con.prepareStatement(updateString);
  162.             stmt.executeUpdate();
  163.             stmt.close();
  164.            
  165.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  166.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_AUTORIZZAZIONE_CONTENUTI_PROP);
  167.             updateString = sqlQueryObject.createSQLDelete();
  168.             stmt = con.prepareStatement(updateString);
  169.             stmt.executeUpdate();
  170.             stmt.close();
  171.            
  172.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  173.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_RATE_LIMITING_PROP);
  174.             updateString = sqlQueryObject.createSQLDelete();
  175.             stmt = con.prepareStatement(updateString);
  176.             stmt.executeUpdate();
  177.             stmt.close();
  178.            
  179.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  180.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_PROP);
  181.             updateString = sqlQueryObject.createSQLDelete();
  182.             stmt = con.prepareStatement(updateString);
  183.             stmt.executeUpdate();
  184.             stmt.close();

  185.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  186.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_MESSAGE_SECURITY_REQUEST);
  187.             updateString = sqlQueryObject.createSQLDelete();
  188.             stmt = con.prepareStatement(updateString);
  189.             stmt.executeUpdate();
  190.             stmt.close();

  191.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  192.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_MESSAGE_SECURITY_RESPONSE);
  193.             updateString = sqlQueryObject.createSQLDelete();
  194.             stmt = con.prepareStatement(updateString);
  195.             stmt.executeUpdate();
  196.             stmt.close();

  197.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  198.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_CORRELAZIONE);
  199.             updateString = sqlQueryObject.createSQLDelete();
  200.             stmt = con.prepareStatement(updateString);
  201.             stmt.executeUpdate();
  202.             stmt.close();

  203.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  204.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_CORRELAZIONE_RISPOSTA);
  205.             updateString = sqlQueryObject.createSQLDelete();
  206.             stmt = con.prepareStatement(updateString);
  207.             stmt.executeUpdate();
  208.             stmt.close();
  209.            
  210.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  211.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_CACHE_REGOLE);
  212.             updateString = sqlQueryObject.createSQLDelete();
  213.             stmt = con.prepareStatement(updateString);
  214.             stmt.executeUpdate();
  215.             stmt.close();

  216.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  217.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_RISPOSTE_HEADER);
  218.             updateString = sqlQueryObject.createSQLDelete();
  219.             stmt = con.prepareStatement(updateString);
  220.             stmt.executeUpdate();
  221.             stmt.close();
  222.            
  223.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  224.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_RISPOSTE);
  225.             updateString = sqlQueryObject.createSQLDelete();
  226.             stmt = con.prepareStatement(updateString);
  227.             stmt.executeUpdate();
  228.             stmt.close();
  229.            
  230.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  231.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_HEADER);
  232.             updateString = sqlQueryObject.createSQLDelete();
  233.             stmt = con.prepareStatement(updateString);
  234.             stmt.executeUpdate();
  235.             stmt.close();
  236.            
  237.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  238.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_URL);
  239.             updateString = sqlQueryObject.createSQLDelete();
  240.             stmt = con.prepareStatement(updateString);
  241.             stmt.executeUpdate();
  242.             stmt.close();
  243.            
  244.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  245.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_SOGGETTI);
  246.             updateString = sqlQueryObject.createSQLDelete();
  247.             stmt = con.prepareStatement(updateString);
  248.             stmt.executeUpdate();
  249.             stmt.close();
  250.            
  251.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  252.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_SA);
  253.             updateString = sqlQueryObject.createSQLDelete();
  254.             stmt = con.prepareStatement(updateString);
  255.             stmt.executeUpdate();
  256.             stmt.close();
  257.            
  258.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  259.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI);
  260.             updateString = sqlQueryObject.createSQLDelete();
  261.             stmt = con.prepareStatement(updateString);
  262.             stmt.executeUpdate();
  263.             stmt.close();

  264.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  265.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE);
  266.             updateString = sqlQueryObject.createSQLDelete();
  267.             stmt = con.prepareStatement(updateString);
  268.             stmt.executeUpdate();
  269.             stmt.close();

  270.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  271.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TOKEN_RUOLI);
  272.             updateString = sqlQueryObject.createSQLDelete();
  273.             stmt = con.prepareStatement(updateString);
  274.             stmt.executeUpdate();
  275.             stmt.close();
  276.            
  277.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  278.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TOKEN_SA);
  279.             updateString = sqlQueryObject.createSQLDelete();
  280.             stmt = con.prepareStatement(updateString);
  281.             stmt.executeUpdate();
  282.             stmt.close();
  283.            
  284.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  285.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_ATTRIBUTE_AUTHORITY);
  286.             updateString = sqlQueryObject.createSQLDelete();
  287.             stmt = con.prepareStatement(updateString);
  288.             stmt.executeUpdate();
  289.             stmt.close();
  290.            
  291.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  292.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_HANDLERS);
  293.             updateString = sqlQueryObject.createSQLDelete();
  294.             stmt = con.prepareStatement(updateString);
  295.             stmt.executeUpdate();
  296.             stmt.close();
  297.            
  298.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  299.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_RUOLI);
  300.             updateString = sqlQueryObject.createSQLDelete();
  301.             stmt = con.prepareStatement(updateString);
  302.             stmt.executeUpdate();
  303.             stmt.close();
  304.            
  305.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  306.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_SCOPE);
  307.             updateString = sqlQueryObject.createSQLDelete();
  308.             stmt = con.prepareStatement(updateString);
  309.             stmt.executeUpdate();
  310.             stmt.close();
  311.            
  312.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  313.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_AZIONI);
  314.             updateString = sqlQueryObject.createSQLDelete();
  315.             stmt = con.prepareStatement(updateString);
  316.             stmt.executeUpdate();
  317.             stmt.close();
  318.            
  319.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  320.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_SA);
  321.             updateString = sqlQueryObject.createSQLDelete();
  322.             stmt = con.prepareStatement(updateString);
  323.             stmt.executeUpdate();
  324.             stmt.close();

  325.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  326.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_RATE_LIMITING_PROP);
  327.             updateString = sqlQueryObject.createSQLDelete();
  328.             stmt = con.prepareStatement(updateString);
  329.             stmt.executeUpdate();
  330.             stmt.close();
  331.            
  332.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  333.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_CONTENUTI_PROP);
  334.             updateString = sqlQueryObject.createSQLDelete();
  335.             stmt = con.prepareStatement(updateString);
  336.             stmt.executeUpdate();
  337.             stmt.close();
  338.            
  339.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  340.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_PROP);
  341.             updateString = sqlQueryObject.createSQLDelete();
  342.             stmt = con.prepareStatement(updateString);
  343.             stmt.executeUpdate();
  344.             stmt.close();
  345.            
  346.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  347.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_AUTENTICAZIONE_PROP);
  348.             updateString = sqlQueryObject.createSQLDelete();
  349.             stmt = con.prepareStatement(updateString);
  350.             stmt.executeUpdate();
  351.             stmt.close();
  352.            
  353.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  354.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_PROP);
  355.             updateString = sqlQueryObject.createSQLDelete();
  356.             stmt = con.prepareStatement(updateString);
  357.             stmt.executeUpdate();
  358.             stmt.close();
  359.            
  360.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  361.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST);
  362.             updateString = sqlQueryObject.createSQLDelete();
  363.             stmt = con.prepareStatement(updateString);
  364.             stmt.executeUpdate();
  365.             stmt.close();

  366.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  367.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE);
  368.             updateString = sqlQueryObject.createSQLDelete();
  369.             stmt = con.prepareStatement(updateString);
  370.             stmt.executeUpdate();
  371.             stmt.close();

  372.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  373.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE);
  374.             updateString = sqlQueryObject.createSQLDelete();
  375.             stmt = con.prepareStatement(updateString);
  376.             stmt.executeUpdate();
  377.             stmt.close();

  378.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  379.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE_RISPOSTA);
  380.             updateString = sqlQueryObject.createSQLDelete();
  381.             stmt = con.prepareStatement(updateString);
  382.             stmt.executeUpdate();
  383.             stmt.close();
  384.            
  385.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  386.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_CACHE_REGOLE);
  387.             updateString = sqlQueryObject.createSQLDelete();
  388.             stmt = con.prepareStatement(updateString);
  389.             stmt.executeUpdate();
  390.             stmt.close();

  391.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  392.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_RISPOSTE_HEADER);
  393.             updateString = sqlQueryObject.createSQLDelete();
  394.             stmt = con.prepareStatement(updateString);
  395.             stmt.executeUpdate();
  396.             stmt.close();
  397.            
  398.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  399.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_RISPOSTE);
  400.             updateString = sqlQueryObject.createSQLDelete();
  401.             stmt = con.prepareStatement(updateString);
  402.             stmt.executeUpdate();
  403.             stmt.close();
  404.            
  405.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  406.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_HEADER);
  407.             updateString = sqlQueryObject.createSQLDelete();
  408.             stmt = con.prepareStatement(updateString);
  409.             stmt.executeUpdate();
  410.             stmt.close();
  411.            
  412.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  413.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_URL);
  414.             updateString = sqlQueryObject.createSQLDelete();
  415.             stmt = con.prepareStatement(updateString);
  416.             stmt.executeUpdate();
  417.             stmt.close();
  418.            
  419.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  420.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_SA);
  421.             updateString = sqlQueryObject.createSQLDelete();
  422.             stmt = con.prepareStatement(updateString);
  423.             stmt.executeUpdate();
  424.             stmt.close();
  425.            
  426.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  427.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI);
  428.             updateString = sqlQueryObject.createSQLDelete();
  429.             stmt = con.prepareStatement(updateString);
  430.             stmt.executeUpdate();
  431.             stmt.close();
  432.            
  433.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  434.             sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE);
  435.             updateString = sqlQueryObject.createSQLDelete();
  436.             stmt = con.prepareStatement(updateString);
  437.             stmt.executeUpdate();
  438.             stmt.close();

  439.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  440.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_CREDENZIALI);
  441.             updateString = sqlQueryObject.createSQLDelete();
  442.             stmt = con.prepareStatement(updateString);
  443.             stmt.executeUpdate();
  444.             stmt.close();
  445.                
  446.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  447.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
  448.             updateString = sqlQueryObject.createSQLDelete();
  449.             stmt = con.prepareStatement(updateString);
  450.             stmt.executeUpdate();
  451.             stmt.close();
  452.            
  453.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  454.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
  455.             updateString = sqlQueryObject.createSQLDelete();
  456.             stmt = con.prepareStatement(updateString);
  457.             stmt.executeUpdate();
  458.             stmt.close();
  459.            
  460.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  461.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI);
  462.             updateString = sqlQueryObject.createSQLDelete();
  463.             stmt = con.prepareStatement(updateString);
  464.             stmt.executeUpdate();
  465.             stmt.close();

  466.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  467.             sqlQueryObject.addDeleteTable(this.driver.tabellaSoggetti);
  468.             updateString = sqlQueryObject.createSQLDelete();
  469.             stmt = con.prepareStatement(updateString);
  470.             stmt.executeUpdate();
  471.             stmt.close();

  472.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  473.             sqlQueryObject.addDeleteTable(CostantiDB.CONNETTORI_CUSTOM);
  474.             updateString = sqlQueryObject.createSQLDelete();
  475.             stmt = con.prepareStatement(updateString);
  476.             stmt.executeUpdate();
  477.             stmt.close();

  478.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  479.             sqlQueryObject.addDeleteTable(CostantiDB.CONNETTORI);
  480.             updateString = sqlQueryObject.createSQLDelete();
  481.             stmt = con.prepareStatement(updateString);
  482.             stmt.executeUpdate();
  483.             stmt.close();

  484.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  485.             sqlQueryObject.addDeleteTable(CostantiDB.GESTIONE_ERRORE_SOAP);
  486.             updateString = sqlQueryObject.createSQLDelete();
  487.             stmt = con.prepareStatement(updateString);
  488.             stmt.executeUpdate();
  489.             stmt.close();

  490.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  491.             sqlQueryObject.addDeleteTable(CostantiDB.GESTIONE_ERRORE_TRASPORTO);
  492.             updateString = sqlQueryObject.createSQLDelete();
  493.             stmt = con.prepareStatement(updateString);
  494.             stmt.executeUpdate();
  495.             stmt.close();

  496.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  497.             sqlQueryObject.addDeleteTable(CostantiDB.GESTIONE_ERRORE);
  498.             updateString = sqlQueryObject.createSQLDelete();
  499.             stmt = con.prepareStatement(updateString);
  500.             stmt.executeUpdate();
  501.             stmt.close();

  502.             if(resetConfigurazione){

  503.                 sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  504.                 sqlQueryObject.addDeleteTable(CostantiDB.REGISTRI);
  505.                 updateString = sqlQueryObject.createSQLDelete();
  506.                 stmt = con.prepareStatement(updateString);
  507.                 stmt.executeUpdate();
  508.                 stmt.close();

  509.                 /* ROUTING DI DEFAULT */
  510.                 sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  511.                 sqlQueryObject.addDeleteTable(CostantiDB.ROUTING);
  512.                 sqlQueryObject.addWhereCondition(true, true, "tiporotta='registro'", "registrorotta=0", "is_default=1");
  513.                 updateString = sqlQueryObject.createSQLDelete();
  514.                 stmt = con.prepareStatement(updateString);
  515.                 stmt.executeUpdate();
  516.                 stmt.close();

  517.                 /** NON DEVE ESSERE CANCELLATA!
  518.                 updateString = "DELETE FROM " + CostantiDB.CONFIGURAZIONE;
  519.                 stmt = con.prepareStatement(updateString);
  520.                 stmt.executeUpdate();
  521.                 stmt.close();
  522.                  */
  523.             }


  524.         } catch (Exception qe) {
  525.             error = true;
  526.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::updateSoggetto] Errore durante la reset : " + qe.getMessage(),qe);
  527.         }finally {

  528.             //Chiudo statement and resultset
  529.             JDBCUtilities.closeResources(stmt);

  530.             this.driver.closeConnection(error,con);
  531.         }
  532.     }

  533.     /**
  534.      * Reset delle tabelle del db govwayConsole gestito da questo driver
  535.      */
  536.     protected void resetCtrlstat() throws DriverConfigurazioneException {
  537.         Connection con = null;
  538.         boolean error = false;
  539.         PreparedStatement stmt=null;
  540.         String updateString;

  541.         if (this.driver.atomica) {
  542.             try {
  543.                 con = this.driver.getConnectionFromDatasource("resetCtrlstat");
  544.                 con.setAutoCommit(false);
  545.             } catch (Exception e) {
  546.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::resetCtrlstat] Exception accedendo al datasource :" + e.getMessage(),e);

  547.             }

  548.         } else
  549.             con = this.driver.globalConnection;

  550.         try {
  551.             ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  552.             sqlQueryObject.addDeleteTable(CostantiDB.MAPPING_EROGAZIONE_PA);
  553.             updateString = sqlQueryObject.createSQLDelete();
  554.             stmt = con.prepareStatement(updateString);
  555.             stmt.executeUpdate();
  556.             stmt.close();

  557.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  558.             sqlQueryObject.addDeleteTable(CostantiDB.MAPPING_FRUIZIONE_PD);
  559.             updateString = sqlQueryObject.createSQLDelete();
  560.             stmt = con.prepareStatement(updateString);
  561.             stmt.executeUpdate();
  562.             stmt.close();

  563.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  564.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_FRUITORI);
  565.             updateString = sqlQueryObject.createSQLDelete();
  566.             stmt = con.prepareStatement(updateString);
  567.             stmt.executeUpdate();
  568.             stmt.close();

  569.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  570.             sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI);
  571.             updateString = sqlQueryObject.createSQLDelete();
  572.             stmt = con.prepareStatement(updateString);
  573.             stmt.executeUpdate();
  574.             stmt.close();
  575.         } catch (Exception qe) {
  576.             error = true;
  577.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::resetCtrlstat] Errore durante la reset : " + qe.getMessage(),qe);
  578.         }finally {

  579.             //Chiudo statement and resultset
  580.             JDBCUtilities.closeResources(stmt);

  581.             this.driver.closeConnection(error,con);
  582.         }
  583.     }
  584.    
  585.     protected void isAlive() throws CoreException{
  586.         if(!this.driver.create)
  587.             throw new CoreException("Driver non inizializzato");

  588.         if(this.driver.atomica){
  589.             // Verifico la connessione
  590.             Connection con = null;
  591.             Statement stmtTest = null;
  592.             try {
  593.                 con = this.driver.getConnectionFromDatasource("isAlive");
  594.                 if(con == null)
  595.                     throw new CoreException("Connessione is null");
  596.                 // test:
  597.                 try {
  598.                     stmtTest = con.createStatement();
  599.                     ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  600.                     sqlQueryObject.addFromTable(CostantiDB.DB_INFO_CONSOLE);
  601.                     sqlQueryObject.addSelectField("*");
  602.                     String sqlQuery = sqlQueryObject.createSQLQuery();
  603.                     stmtTest.execute(sqlQuery);
  604.                 }catch(Throwable t) {
  605.                     JDBCUtilities.closeResources(stmtTest);
  606.                     try {
  607.                         stmtTest = con.createStatement();
  608.                         ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  609.                         sqlQueryObject.addFromTable(CostantiDB.DB_INFO);
  610.                         sqlQueryObject.addSelectField("*");
  611.                         String sqlQuery = sqlQueryObject.createSQLQuery();
  612.                         stmtTest.execute(sqlQuery);
  613.                     }catch(Throwable tInternal) {
  614.                         throw new UtilsMultiException(t,tInternal);
  615.                     }
  616.                 }
  617.             } catch (Exception e) {
  618.                 throw new CoreException("Connessione alla configurazione non disponibile: "+e.getMessage(),e);

  619.             }finally{
  620.                 JDBCUtilities.closeResources(stmtTest);
  621.                 try{
  622.                     JDBCUtilities.closeConnection(DriverConfigurazioneDB.getCheckLogger(), con, DriverConfigurazioneDB.isCheckAutocommit(), DriverConfigurazioneDB.isCheckIsClosed());
  623.                 }catch(Exception e){
  624.                     // close
  625.                 }
  626.             }
  627.         }else{
  628.             Statement stmtTest = null;
  629.             try {
  630.                 if(this.driver.globalConnection == null)
  631.                     throw new CoreException("Connessione is null");
  632.                 // test:
  633.                 try {
  634.                     stmtTest = this.driver.globalConnection.createStatement();
  635.                     ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  636.                     sqlQueryObject.addFromTable(CostantiDB.DB_INFO_CONSOLE);
  637.                     sqlQueryObject.addSelectField("*");
  638.                     String sqlQuery = sqlQueryObject.createSQLQuery();
  639.                     stmtTest.execute(sqlQuery);
  640.                 }catch(Throwable t) {
  641.                     JDBCUtilities.closeResources(stmtTest);
  642.                     try {
  643.                         stmtTest = this.driver.globalConnection.createStatement();
  644.                         ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  645.                         sqlQueryObject.addFromTable(CostantiDB.DB_INFO);
  646.                         sqlQueryObject.addSelectField("*");
  647.                         String sqlQuery = sqlQueryObject.createSQLQuery();
  648.                         stmtTest.execute(sqlQuery);
  649.                     }catch(Throwable tInternal) {
  650.                         throw new UtilsMultiException(t,tInternal);
  651.                     }
  652.                 }
  653.             } catch (Exception e) {
  654.                 throw new CoreException("Connessione alla configurazione registro non disponibile: "+e.getMessage(),e);

  655.             }finally{
  656.                 JDBCUtilities.closeResources(stmtTest);
  657.             }
  658.         }
  659.     }
  660.    
  661.    
  662.     public ProprietaOggetto readProprietaOggetto(ResultSet rs, boolean useAlias) throws SQLException {
  663.         ProprietaOggetto p = null;
  664.         // Proprieta Oggetto
  665.         if(rs!=null) {
  666.             String utenteRichiedente = rs.getString(useAlias ? CostantiDB.PROPRIETA_OGGETTO_ALIAS_UTENTE_RICHIEDENTE : CostantiDB.PROPRIETA_OGGETTO_UTENTE_RICHIEDENTE);
  667.             java.util.Date dataCreazione  = rs.getTimestamp(useAlias ? CostantiDB.PROPRIETA_OGGETTO_ALIAS_DATA_CREAZIONE : CostantiDB.PROPRIETA_OGGETTO_DATA_CREAZIONE);
  668.             String utenteUltimaModifica = rs.getString(useAlias ? CostantiDB.PROPRIETA_OGGETTO_ALIAS_UTENTE_ULTIMA_MODIFICA : CostantiDB.PROPRIETA_OGGETTO_UTENTE_ULTIMA_MODIFICA);
  669.             java.util.Date dataUltimaModifica  = rs.getTimestamp(useAlias ? CostantiDB.PROPRIETA_OGGETTO_ALIAS_DATA_ULTIMA_MODIFICA : CostantiDB.PROPRIETA_OGGETTO_DATA_ULTIMA_MODIFICA);
  670.             if(utenteRichiedente!=null || dataCreazione!=null || utenteUltimaModifica!=null || dataUltimaModifica!=null) {
  671.                 p = new ProprietaOggetto();
  672.                 p.setUtenteRichiedente(utenteRichiedente);
  673.                 p.setDataCreazione(dataCreazione);
  674.                 p.setUtenteUltimaModifica(utenteUltimaModifica);
  675.                 p.setDataUltimaModifica(dataUltimaModifica);
  676.             }
  677.         }
  678.         return p;
  679.     }
  680. }