Class DynamicCodeDao
java.lang.Object
ru.bitel.bgbilling.kernel.dynamic.server.bean.DynamicCodeDao
DAO для низкоуровневой работы с динамически загружаемым кодом. Не рекомендуется для
 использования напрямую.
- See Also:
 
- 
Field Summary
Fields - 
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) Сохраняет исходный код класса на диск в соответствующий файл. 
- 
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
 
 -