Package ru.bitel.bgbilling.server.util
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 voidaddNoCache(javax.servlet.http.HttpServletResponse response)static voidchangeLastModificationTime(java.sql.Connection con, java.lang.String param)static voidcheckPeriod(java.util.Date date1, java.util.Date date2)проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=nullstatic voidcheckTable(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery)проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableNamestatic voidcloseConnection(java.sql.Connection con)Безопасное закрытие одного соединения с БД.static voidcloseConnection(java.sql.Connection... con)Безопасное закрытие одного или нескольких соединений с БД.static voidcloseConnection(java.sql.Connection con, java.sql.Connection conSlave)Безопасное закрытие одного или двух соединений с БД.static booleancolumnExist(java.sql.Connection con, java.lang.String table, java.lang.String column)static voidcommitConnection(java.sql.Connection con)Каммит одного соединения с БД.static voidcreateDirectoriesOnFTP(org.apache.commons.net.ftp.FTPClient ftpConnect, java.lang.String pathOnFTP)Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаётstatic java.lang.StringdateToString(java.lang.String source, java.lang.String inPattern, java.lang.String outPattern)static voiddeleteDir(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 voiddropExistColumn(java.sql.Connection con, java.lang.String table, java.lang.String column)static voiddropExistTable(java.sql.Connection con, java.lang.String tableName)static java.lang.StringformatNumber(java.lang.Number value, java.lang.String formatPattern)Используется XSLT скриптами в качестве расширения.static intfoundRows(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.CalendargetLastModificationTime(java.sql.Connection con, java.lang.String param)static java.lang.StringgetModuleMonthDayTableName(java.lang.String name, java.util.Date time, int moduleId)Вернет name_mid_yyyyMMdd>static java.lang.StringgetModuleMonthTableName(java.lang.String name, java.time.LocalDate time, int moduleId)static java.lang.StringgetModuleMonthTableName(java.lang.String name, java.util.Date time, int moduleId)Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
name_mid_yyyyMM>static java.lang.StringgetModuleTableName(java.lang.String name, int mid)Функция выдает название таблицы на основании префикса и кода модуля name_mid>static java.lang.StringgetMonthTableName(java.lang.String name, java.util.Date time)Вернет name_yyyyMM>static java.security.PrivateKeygetPrivateKey(Setup setup, java.lang.String alias)Получение приватного ключа из файла .keystore по алиасуstatic java.lang.StringgetQuestions(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.StringgetServerHome()общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)static java.lang.StringgetSetupValue(java.sql.Connection con, java.lang.String name)static java.lang.StringgetSetupValue(java.sql.Connection con, java.lang.String name, java.lang.String defaultValue)Возвращает данные из таблицы setupstatic java.io.BufferedReadergetSocketIn(java.net.Socket socket)static java.io.PrintWritergetSocketOut(java.net.Socket socket)static intlastInsertId(java.sql.Connection con)static intlastInsertId(java.sql.PreparedStatement ps)static longlastInsertLongId(java.sql.PreparedStatement ps)static voidprepareElementToSerialize(org.w3c.dom.Node el)static voidrecycle(java.lang.Object... oo)static voidremoveSetupValue(java.sql.Connection con, java.lang.String name)static java.lang.Stringreplace(java.lang.String value, java.lang.String from, java.lang.String to)Используется XSLT скриптами в качестве расширения.static voidresultSetToXML(java.sql.ResultSet rs, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table)static voidresultSetToXML(java.sql.ResultSet rs, org.w3c.dom.Element whereAdd, java.lang.String table)сериализует таблицу в XML елементstatic voidsetAutoCommit(java.sql.Connection con, boolean auto)static voidsetSetupValue(java.sql.Connection con, java.lang.String name, java.lang.String value)static booleantableExists(java.sql.Connection con, java.lang.String tableName)Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращенийstatic java.lang.Stringupd5(java.lang.String doc1, java.lang.String doc2, java.lang.String date1, java.lang.String date2)Используется XSLT скриптами в качестве расширения.static java.lang.StringuptimeStatus(java.util.Date startTime)Сстатус uptime чего либо.static java.lang.Stringurldecode(java.lang.String value)Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode.static java.lang.Stringurlencode(java.lang.String value)Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком.static java.lang.StringvalueOrDefault(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.SQLExceptionjavax.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.SQLExceptionjavax.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.SQLExceptionjavax.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.SQLExceptionjavax.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- - первое соединение, не может быть nullconSlave- - второе соединенеи может быть 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.SQLExceptionjavax.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
Получение приватного ключа из файла .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 итд)
-