Class DynamicCodeDao
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstractDaoConstant
ru.bitel.bgbilling.kernel.dynamic.server.dao.DynamicCodeDao
public class DynamicCodeDao
extends ru.bitel.bgbilling.common.dao.AbstractDaoConstant
DAO для низкоуровневой работы с динамически загружаемым кодом. Не рекомендуется для
использования напрямую.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Patternрегекспы имён (ресурсов) которые будут игнорироваться при обходе файлов в дин.коде: ***.bak, ***.bak.666static final Stringstatic final Stringstatic final StringFields inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidbackupAndDelete(String className) Делает бэкап исходника и удаляет его.voidvoiddeleteClassFromDb(String className) Удаляет записи о данном классе из таблиц script_classes и script_classes_ifacesstatic voiddeleteSourcesBackup(String className) Удаляет резервную копию исходниковgetActualClassesByInterface(String interfaceName) Возвращает список загруженных классов, которые реализуют заданный интерфейс.Получить все скомпилированные классы из БД, в том числе и анонимные.byte[]getClassData(String className) Возвращает скомпилированный байт-код класса из БД.static FilegetClassFile(String className) Возвращает File, соответствующий файлу с исходным кодом указанного класа.static StringgetClassSource(String className) Возвращает исходный код скрипта, считанный из файла.Возвращает список всех классов и ресурсов.static final Stringstatic voidrestoreSourcesFromBackup(String className) Восстанавливает код класса из сохраненной копии и удаляет её.voidupdateClassData(String className, byte[] data, long lastModified) Сохраняет в БД скомпилированный класс synchronized, так как 2 соыбтия одновременно могут сохранить один и тот же классvoidupdateClassInterfaces(Class<?> clazz) Обновляет информацию об интерфейсах, которые имплементирует класс.static voidupdateClassSource(String className, String data) Сохраняет исходный код класса на диск в соответствующий файл.Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
getPeriod, getPlaceholders, getSQLOrder, getSQLOrderFields, getTableName, psSetDate, psSetDateOrNull, psSetInt, psSetIntOrNull, psSetPeriod, psSetString, psSetStringOrNull, psSetTimestampOrNull, queryAndIn, setStatementParam, sqlDelete, sqlDeleteBatch, sqlInsert, sqlInsertBatch, sqlInsertGetId, sqlInsertGetLongId, sqlInsertOnDuplicateKeyUpdate, sqlInsertSelect, sqlInsertUpdateById, sqlSelectCountAsInt, sqlUpdate, sqlUpdateBatchMethods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError, warn
-
Field Details
-
TABLE_SCRIPT_CLASSES
- See Also:
-
TABLE_SCRIPT_CLASSES_IFACES
- See Also:
-
SOURCE_ENCODING
- See Also:
-
RESOURCE_REGEXP_BLACKLIST
регекспы имён (ресурсов) которые будут игнорироваться при обходе файлов в дин.коде: ***.bak, ***.bak.666
-
-
Constructor Details
-
DynamicCodeDao
-
-
Method Details
-
getScriptsDir
-
getClassData
Возвращает скомпилированный байт-код класса из БД.- Parameters:
className- имя класса- Returns:
- байт-код
- Throws:
ru.bitel.bgbilling.common.BGException- ошибки (в т.ч. ошибки БД)ClassNotFoundException
-
getClassSource
Возвращает исходный код скрипта, считанный из файла.- Parameters:
className- имя класса- Returns:
- исходный код
- Throws:
ru.bitel.bgbilling.common.BGException- ошибки
-
updateClassData
Сохраняет в БД скомпилированный класс synchronized, так как 2 соыбтия одновременно могут сохранить один и тот же класс- Parameters:
className- имя классаdata- скомпилированный класс- Throws:
ru.bitel.bgbilling.common.BGExceptionSQLException
-
updateClassSource
public static void updateClassSource(String className, String data) throws ru.bitel.bgbilling.common.BGException Сохраняет исходный код класса на диск в соответствующий файл. Сохраняет резервную копию изменяемого исходного кода для возможного отката изменений.- Parameters:
className- имя классаdata- исходный код- Throws:
ru.bitel.bgbilling.common.BGException
-
restoreSourcesFromBackup
public static void restoreSourcesFromBackup(String className) throws ru.bitel.bgbilling.common.BGException Восстанавливает код класса из сохраненной копии и удаляет её.- Parameters:
className- имя класса- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteSourcesBackup
Удаляет резервную копию исходников- Parameters:
className- имя класса
-
getDynamicClasses
Возвращает список всех классов и ресурсов.- Returns:
- список классов
- Throws:
ru.bitel.bgbilling.common.BGException- ошибки.Exception
-
getClassFile
Возвращает File, соответствующий файлу с исходным кодом указанного класа. Для ресурсов расширение указывается через двоеточие ("classname:xml" или "classname:rep:xml"), если эта часть не задана - то это java-класс.- Parameters:
className- имя класса (или ресурса с расширением)- Returns:
- file файл
-
updateClassInterfaces
Обновляет информацию об интерфейсах, которые имплементирует класс.- Parameters:
clazz- имя класса- Throws:
ru.bitel.bgbilling.common.BGExceptionSQLException
-
getActualClassesByInterface
public List<String> getActualClassesByInterface(String interfaceName) throws ru.bitel.bgbilling.common.BGException Возвращает список загруженных классов, которые реализуют заданный интерфейс.- Parameters:
interfaceName- имя интерфейса- Returns:
- список классов
- Throws:
ru.bitel.bgbilling.common.BGException
-
backupAndDelete
Делает бэкап исходника и удаляет его.- Parameters:
className- имя класса- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteClassFromDb
Удаляет записи о данном классе из таблиц script_classes и script_classes_ifaces- Parameters:
className- имя класса- Throws:
ru.bitel.bgbilling.common.BGExceptionSQLException
-
clearTables
- Throws:
SQLException
-
getClassData
Получить все скомпилированные классы из БД, в том числе и анонимные.- Returns:
- Throws:
ru.bitel.bgbilling.common.BGExceptionSQLException
-