Class ServerUtils

java.lang.Object
ru.bitel.bgbilling.server.util.ServerUtils

public class ServerUtils
extends java.lang.Object
Серверный утилс. Работа с соединениями с БД. Также содержит методы импортируемые в xslt-шаблонах.
  • Constructor Summary

    Constructors
    Constructor Description
    ServerUtils()  
  • Method Summary

    Modifier and Type Method Description
    static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2)  
    static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins)  
    static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2)  
    static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins)  
    static void addNoCache​(javax.servlet.http.HttpServletResponse response)  
    static void changeLastModificationTime​(java.sql.Connection con, java.lang.String param)  
    static void checkPeriod​(java.util.Date date1, java.util.Date date2)
    проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null
    static void checkTable​(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery)
    проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName
    static void closeConnection​(java.sql.Connection con)
    Безопасное закрытие одного соединения с БД.
    static void closeConnection​(java.sql.Connection... con)
    Безопасное закрытие одного или нескольких соединений с БД.
    static void closeConnection​(java.sql.Connection con, java.sql.Connection conSlave)
    Безопасное закрытие одного или двух соединений с БД.
    static boolean columnExist​(java.sql.Connection con, java.lang.String table, java.lang.String column)  
    static void commitConnection​(java.sql.Connection con)
    Каммит одного соединения с БД.
    static void createDirectoriesOnFTP​(org.apache.commons.net.ftp.FTPClient ftpConnect, java.lang.String pathOnFTP)
    Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт
    static java.lang.String dateToString​(java.lang.String source, java.lang.String inPattern, java.lang.String outPattern)  
    static void deleteDir​(java.io.File dirPath)  
    static java.util.List<java.lang.String> deleteRowsFromTable​(java.sql.Connection con, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn)  
    static void dropExistColumn​(java.sql.Connection con, java.lang.String table, java.lang.String column)  
    static void dropExistTable​(java.sql.Connection con, java.lang.String tableName)  
    static java.lang.String formatNumber​(java.lang.Number value, java.lang.String formatPattern)
    Используется XSLT скриптами в качестве расширения.
    static int foundRows​(java.sql.Connection con)  
    static java.util.List<java.lang.Class<?>> getClassList​(java.lang.String packageName)  
    static java.util.Map<java.lang.String,​byte[]> getEntriesFromZip​(java.util.zip.ZipInputStream zis, java.lang.String mask)  
    static java.util.Map<java.lang.String,​byte[]> getFileEntriesFromZipByPrefix​(java.util.zip.ZipInputStream zis, java.lang.String prefix)  
    static java.util.Calendar getLastModificationTime​(java.sql.Connection con, java.lang.String param)  
    static java.lang.String getModuleMonthDayTableName​(java.lang.String name, java.util.Date time, int moduleId)
    Вернет name_mid_yyyyMMdd
    static java.lang.String getModuleMonthTableName​(java.lang.String name, java.time.LocalDate time, int moduleId)  
    static java.lang.String getModuleMonthTableName​(java.lang.String name, java.util.Date time, int moduleId)
    Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
    name_mid_yyyyMM
    static java.lang.String getModuleTableName​(java.lang.String name, int mid)
    Функция выдает название таблицы на основании префикса и кода модуля name_mid
    static java.lang.String getMonthTableName​(java.lang.String name, java.util.Date time)
    Вернет name_yyyyMM
    static java.security.PrivateKey getPrivateKey​(Setup setup, java.lang.String alias)
    Получение приватного ключа из файла .keystore по алиасу
    static java.lang.String getQuestions​(int count)
    Получаем строку вида ?
    static java.util.List<java.util.List<java.lang.Integer>> getRanges​(int gid, java.lang.String range)
    Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование
    static java.lang.String getServerHome()
    общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)
    static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name)  
    static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String defaultValue)
    Возвращает данные из таблицы setup
    static java.io.BufferedReader getSocketIn​(java.net.Socket socket)  
    static java.io.PrintWriter getSocketOut​(java.net.Socket socket)  
    static int lastInsertId​(java.sql.Connection con)  
    static int lastInsertId​(java.sql.PreparedStatement ps)  
    static long lastInsertLongId​(java.sql.PreparedStatement ps)  
    static void prepareElementToSerialize​(org.w3c.dom.Node el)  
    static void recycle​(java.lang.Object... oo)  
    static void removeSetupValue​(java.sql.Connection con, java.lang.String name)  
    static java.lang.String replace​(java.lang.String value, java.lang.String from, java.lang.String to)
    Используется XSLT скриптами в качестве расширения.
    static void resultSetToXML​(java.sql.ResultSet rs, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table)  
    static void resultSetToXML​(java.sql.ResultSet rs, org.w3c.dom.Element whereAdd, java.lang.String table)
    сериализует таблицу в XML елемент
    static void setAutoCommit​(java.sql.Connection con, boolean auto)  
    static void setSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String value)  
    static boolean tableExists​(java.sql.Connection con, java.lang.String tableName)
    Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений
    static java.lang.String upd5​(java.lang.String doc1, java.lang.String doc2, java.lang.String date1, java.lang.String date2)
    Используется XSLT скриптами в качестве расширения.
    static java.lang.String uptimeStatus​(java.util.Date startTime)
    Сстатус uptime чего либо.
    static java.lang.String urldecode​(java.lang.String value)
    Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode.
    static java.lang.String urlencode​(java.lang.String value)
    Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком.
    static java.lang.String valueOrDefault​(java.lang.String value, java.lang.String defaultValue)
    Используется XSLT скриптами в качестве расширения.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ServerUtils

      public ServerUtils()
  • Method Details

    • tableExists

      public static boolean tableExists​(java.sql.Connection con, java.lang.String tableName)
      Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений
      Parameters:
      con - объект доступа к БД
      tableName - имя проверяемой таблицы
      Returns:
      true - таблица существует, false - таблица не существует или нет доступа к БД
      Throws:
      java.sql.SQLException - если возникают проблемы с доступом к БД
    • columnExist

      public static boolean columnExist​(java.sql.Connection con, java.lang.String table, java.lang.String column)
    • dropExistColumn

      public static void dropExistColumn​(java.sql.Connection con, java.lang.String table, java.lang.String column) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • addItemsFromRS

      public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
      Throws:
      java.sql.SQLException
      javax.xml.stream.XMLStreamException
    • addItemsFromRS

      public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
      Throws:
      java.sql.SQLException
      javax.xml.stream.XMLStreamException
    • addItemsFromRS

      public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
      Throws:
      java.sql.SQLException
      javax.xml.stream.XMLStreamException
    • addItemsFromRS

      public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
      Throws:
      java.sql.SQLException
      javax.xml.stream.XMLStreamException
    • deleteRowsFromTable

      public static java.util.List<java.lang.String> deleteRowsFromTable​(java.sql.Connection con, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • getModuleMonthTableName

      public static java.lang.String getModuleMonthTableName​(java.lang.String name, java.time.LocalDate time, int moduleId)
    • getModuleMonthTableName

      public static java.lang.String getModuleMonthTableName​(java.lang.String name, java.util.Date time, int moduleId)
      Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
      name_mid_yyyyMM
    • getModuleMonthDayTableName

      public static java.lang.String getModuleMonthDayTableName​(java.lang.String name, java.util.Date time, int moduleId)
      Вернет name_mid_yyyyMMdd
    • getModuleTableName

      public static java.lang.String getModuleTableName​(java.lang.String name, int mid)
      Функция выдает название таблицы на основании префикса и кода модуля name_mid
    • getMonthTableName

      public static java.lang.String getMonthTableName​(java.lang.String name, java.util.Date time)
      Вернет name_yyyyMM
    • prepareElementToSerialize

      public static void prepareElementToSerialize​(org.w3c.dom.Node el)
    • checkTable

      public static void checkTable​(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery) throws java.sql.SQLException
      проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName
      Throws:
      java.sql.SQLException
    • uptimeStatus

      public static final java.lang.String uptimeStatus​(java.util.Date startTime)
      Сстатус uptime чего либо. Используется в отдельнозапущенных серверах для инфы в статусе.
      Parameters:
      startTime - время запуска этого "что-либо"
      Returns:
      некая uptime-информация в виде строки
    • getSetupValue

      public static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name)
    • getSetupValue

      public static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String defaultValue)
      Возвращает данные из таблицы setup
      Parameters:
      con -
      name - имя параметра
      defaultValue - значение по умолчанию
      Returns:
      значение из таблицы если есть запись с заданным именем, иначе defaultValue
    • setSetupValue

      public static void setSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String value)
    • removeSetupValue

      public static void removeSetupValue​(java.sql.Connection con, java.lang.String name)
    • getLastModificationTime

      public static java.util.Calendar getLastModificationTime​(java.sql.Connection con, java.lang.String param)
    • lastInsertId

      public static int lastInsertId​(java.sql.Connection con) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • lastInsertId

      public static int lastInsertId​(java.sql.PreparedStatement ps) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • lastInsertLongId

      public static long lastInsertLongId​(java.sql.PreparedStatement ps) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • foundRows

      public static int foundRows​(java.sql.Connection con) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • changeLastModificationTime

      public static void changeLastModificationTime​(java.sql.Connection con, java.lang.String param)
    • closeConnection

      public static final void closeConnection​(java.sql.Connection... con)
      Безопасное закрытие одного или нескольких соединений с БД.
      Parameters:
      con -
    • closeConnection

      public static final void closeConnection​(java.sql.Connection con)
      Безопасное закрытие одного соединения с БД. Более быстр по сравнению с closeConnection(Connection...), т.к. на каждый вызов не создаётся массив.
      Parameters:
      con - - соединение, не может быть null
    • closeConnection

      public static final void closeConnection​(java.sql.Connection con, java.sql.Connection conSlave)
      Безопасное закрытие одного или двух соединений с БД. Более быстр по сравнению с closeConnection(Connection...), т.к. на каждый вызов не создаётся массив.
      Parameters:
      con - - первое соединение, не может быть null
      conSlave - - второе соединенеи может быть null
    • commitConnection

      public static final void commitConnection​(java.sql.Connection con)
      Каммит одного соединения с БД.
      Parameters:
      con - - соединение.
    • getRanges

      public static java.util.List<java.util.List<java.lang.Integer>> getRanges​(int gid, java.lang.String range)
      Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование
      Parameters:
      gid -
      range -
      Returns:
    • getEntriesFromZip

      public static java.util.Map<java.lang.String,​byte[]> getEntriesFromZip​(java.util.zip.ZipInputStream zis, java.lang.String mask)
    • resultSetToXML

      public static void resultSetToXML​(java.sql.ResultSet rs, org.w3c.dom.Element whereAdd, java.lang.String table) throws java.sql.SQLException
      сериализует таблицу в XML елемент
      Throws:
      java.sql.SQLException
    • getFileEntriesFromZipByPrefix

      public static java.util.Map<java.lang.String,​byte[]> getFileEntriesFromZipByPrefix​(java.util.zip.ZipInputStream zis, java.lang.String prefix)
    • getSocketOut

      public static java.io.PrintWriter getSocketOut​(java.net.Socket socket) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • getSocketIn

      public static java.io.BufferedReader getSocketIn​(java.net.Socket socket) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • dropExistTable

      public static final void dropExistTable​(java.sql.Connection con, java.lang.String tableName) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • setAutoCommit

      public static final void setAutoCommit​(java.sql.Connection con, boolean auto)
    • resultSetToXML

      public static void resultSetToXML​(java.sql.ResultSet rs, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
      Throws:
      java.sql.SQLException
      javax.xml.stream.XMLStreamException
    • replace

      public static java.lang.String replace​(java.lang.String value, java.lang.String from, java.lang.String to)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      from -
      to -
      Returns:
    • urlencode

      public static java.lang.String urlencode​(java.lang.String value)
      Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком. personalAcc=adfuf|name=mmmmm personalAcc%3Dadfuf%2Fname%3Dmmmmm Используется XSLT скриптами в качестве расширения.
    • urldecode

      public static java.lang.String urldecode​(java.lang.String value)
      Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode. Используется XSLT скриптами в качестве расширения.
    • valueOrDefault

      public static java.lang.String valueOrDefault​(java.lang.String value, java.lang.String defaultValue)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      defaultValue -
      Returns:
    • formatNumber

      public static java.lang.String formatNumber​(java.lang.Number value, java.lang.String formatPattern)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      formatPattern -
      Returns:
    • upd5

      public static java.lang.String upd5​(java.lang.String doc1, java.lang.String doc2, java.lang.String date1, java.lang.String date2)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      doc1 -
      doc2 -
      date1 -
      date2 -
      Returns:
    • dateToString

      public static java.lang.String dateToString​(java.lang.String source, java.lang.String inPattern, java.lang.String outPattern)
    • recycle

      public static void recycle​(java.lang.Object... oo)
    • addNoCache

      public static void addNoCache​(javax.servlet.http.HttpServletResponse response)
    • deleteDir

      public static void deleteDir​(java.io.File dirPath)
    • getQuestions

      public static java.lang.String getQuestions​(int count)
      Получаем строку вида ?,?,?
      Parameters:
      count -
      Returns:
    • getPrivateKey

      public static java.security.PrivateKey getPrivateKey​(Setup setup, java.lang.String alias)
      Получение приватного ключа из файла .keystore по алиасу
      Parameters:
      setup -
      alias -
      Returns:
    • getClassList

      public static java.util.List<java.lang.Class<?>> getClassList​(java.lang.String packageName)
    • createDirectoriesOnFTP

      public static void createDirectoriesOnFTP​(org.apache.commons.net.ftp.FTPClient ftpConnect, java.lang.String pathOnFTP) throws java.io.IOException
      Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт
      Parameters:
      ftpConnect - коннект с FTP сервером
      pathOnFTP - абсолютный путь до нужной директории
      Throws:
      java.io.IOException
    • checkPeriod

      public static void checkPeriod​(java.util.Date date1, java.util.Date date2) throws ru.bitel.bgbilling.common.BGException
      проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getServerHome

      public static java.lang.String getServerHome()
      общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)