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 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=nullstatic void
checkTable(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery)
проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableNamestatic 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)
Возвращает данные из таблицы setupstatic 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
- - первое соединение, не может быть 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.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
Получение приватного ключа из файла .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 итд)
-