Для разработчиков BE4

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск

Здесь будет информация по архитектуре BE4.

На высоком уровне BE4 состоит из нескольких частей:

  • com.beanexplorer.enterprise.metadata* - ядро
  • com.beanexplorer.enterprise.metadata.ant - реализация Ant задач, объявленных в be4/src/be4lib.xml, эти классы не должны использоваться во время исполнения BEclipse
  • com.beanexplorer.enterprise.be4core - класс Be4QueryExecutor, необходимый для запуска Query относительно простым образом без необходимости хранить Query в таблице (в BE3 запуск Query происходит по имени или идентификатору Query в таблице queries, а мы в BE4 работаем только с модельными объектами представленными в виде Java объектов, а не строк в SQL таблицах); используется для запуска Query в BEeclipse и BE5
  • com.beanexplorer.enterprise.eclipse - UI BEclipse и необходимые для его модельные элементы и view model
  • com.beanexplorer.enterprise.api - заготовка фасада для использования простейшего API в тестах: загрузка проекта из папки (projectApi = Facade.load(path)), получение корректного DatabaseConnector (projectApi.getDatabaseConnector()) и запуск Freemarker скриптов (projectApi.runFreemarkerScript(string))
  • com.beanexplorer.enterprise.diagrams - здесь и модельные элементы, и UI для диаграмм; новые виды диаграм легче всего добавлять по аналогии со старыми, смотря на уже готовые классы
  • com.beanexplorer.enterprise.planning - здесь и Model, и ViewModel, и View для для TasksView

Ядро

  • com.beanexplorer.enterprise.metadata* - ядро
    • exception - все базовые исключения для BE4, мы используем checked exceptions
    • model* - самое сердце BE4 - модельные объекты, которые представляют собой дерево проекта, начиная с класса Project
    • sql -
    • serialization -
    • freemarker - расширение Freemarker, в частности Be4BuiltIns и DatabaseFunctions, макросы находятся в be4/src/com/beanexplorer/enterprise/metadata/freemarker/macro/common.ftl
      • FreemarkerSqlHandler - получает на вход FreemarkerScript и запускает его как SQL, переадресуя сгенерированный текст в SqlExecutor
    • util

UI