Class DynamicCodeDao
java.lang.Object
ru.bitel.bgbilling.kernel.dynamic.server.bean.DynamicCodeDao
DAO для низкоуровневой работы с динамически загружаемым кодом. Не рекомендуется для
использования напрямую.
- See Also:
-
DynamicCodeService
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
backupAndDelete
(String className) Делает бэкап исходника и удаляет его.void
void
deleteClassFromDb
(String className) Удаляет записи о данном классе из таблиц script_classes и script_classes_ifacesstatic void
deleteSourcesBackup
(String className) Удаляет резервную копию исходниковgetActualClassesByInterface
(String interfaceName) Возвращает список загруженных классов, которые реализуют заданный интерфейс.Получить все скомпилированные классы из БД, в том числе и анонимные.byte[]
getClassData
(String className) Возвращает скомпилированный байт-код класса из БД.static File
getClassFile
(String className) Возвращает File, соответствующий файлу с исходным кодом указанного класа.static String
getClassSource
(String className) Возвращает исходный код скрипта, считанный из файла.Возвращает список всех классов и ресурсов.static final String
static void
restoreSourcesFromBackup
(String className) Восстанавливает код класса из сохраненной копии и удаляет её.void
updateClassData
(String className, byte[] data, long lastModified) Сохраняет в БД скомпилированный класс synchronized, так как 2 соыбтия одновременно могут сохранить один и тот же классvoid
updateClassInterfaces
(Class<?> clazz) Обновляет информацию об интерфейсах, которые имплементирует класс.static void
updateClassSource
(String className, String data) Сохраняет исходный код класса на диск в соответствующий файл.
-
Field Details
-
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
- ошибки (в т.ч. ошибки БД)
-
getClassSource
Возвращает исходный код скрипта, считанный из файла.- Parameters:
className
- имя класса- Returns:
- исходный код
- Throws:
ru.bitel.bgbilling.common.BGException
- ошибки
-
updateClassData
public void updateClassData(String className, byte[] data, long lastModified) throws ru.bitel.bgbilling.common.BGException Сохраняет в БД скомпилированный класс synchronized, так как 2 соыбтия одновременно могут сохранить один и тот же класс- Parameters:
className
- имя классаdata
- скомпилированный класс- Throws:
ru.bitel.bgbilling.common.BGException
-
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
- ошибки.
-
getClassFile
Возвращает File, соответствующий файлу с исходным кодом указанного класа. Для ресурсов расширение указывается через двоеточие ("classname:xml" или "classname:rep:xml"), если эта часть не задана - то это java-класс.- Parameters:
className
- имя класса (или ресурса с расширением)- Returns:
- file файл
-
updateClassInterfaces
Обновляет информацию об интерфейсах, которые имплементирует класс.- Parameters:
clazz
- имя класса- Throws:
ru.bitel.bgbilling.common.BGException
-
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.BGException
-
clearTables
public void clearTables() throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
getClassData
Получить все скомпилированные классы из БД, в том числе и анонимные.- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-