# Конфигуратор Системное приложение «Конфигуратор» предназначено для автоматизации и ускорению выполнения рутинных задач по разработке проекта: - Создание нового проекта - Создание нового модуля - Работа с классами - Создание - Редактирование - Работа с выборками - Создание - Редактирование - Управление разметкой выборок - Редактор карточки - Редактор фреймов. - Управление подсистемой распространения изменений. - Управление технической документацией сущностей и методов проекта. Конфигуратор предназначен для работы на локальном компьютере разработчика. Конфигуратор взаимодействует с IDE Intellij Idea через специальный плагин. Конфигуратор поддерживает систему контроля версий SVN. ## Запуск Для запуска конфигуратора выполните следующие действия: 1. Запустите сервер Global \ Выполните скрипт `C:\Global3se\start.bat` или запустите отладку в IDE Intellij Idea 2. Откройте в браузере адрес `http://localhost:8080/` 3. Введите логин, пароль, базу данных 4. Разверните настройки подключения 5. Установите флажок "Конфигуратор" 6. Войдите в систему ## Первичная настройка При первом запуске конфигуратор предлагает выбрать режим работы по умолчанию: локально или через систему контроля версий. При работе через систему контроля версий необходимо далее указать: - Логин svn - Пароль svn - Url svn Настройки сохраняются в поддиректорий конфигурации сервера Global: `C:\Global3se\application\config\cfg` - `vcs.dat` – Настройка SVN - `project.dat` – Настройка проектов При удалении этих файлов мастер настройки автоматически запустится заново. ## Создание нового проекта Запустить мастер создания проектов: `Проекты > Новый проект` ### Общие настройки - *Системное имя проекта* \ Внутреннее имя проекта, обычно совпадает с наименованием директории проекта (пример: `intern199`) - *Локальный путь до проекта* \ Корневая директория, в которой будет создан проект пример: `C:\SVN\ASSource\database\pgIntern\...` ### Настройки для локального режима В локальном режиме работы требуется указать - *параметры соединения с БД* - *шаблон проекта * - или путь к архиву с шаблоном проекта - или каталог с существующим проектом - ### Настройки для работы через svn Для режима работы через систему контроля версий предусмотрена расширенная конфигурация при которой надо задать параметры: - *Путь в репозитории* Каталог в SVN, в который будет сохранен проект пример: `ASSource/database/pgIntern/...` ### Настройки Sbt-plugin Sbt-plugin является расширением к системе сборки sbt (scala build tool). При настройке рекомендуется не использовать пункт "trunk-версия", а оставить предложенную версию, которая является максимальной на момент создания проекта. ### Настройки Базы данных - *Url* \ Указывается тип драйвера и параметры подключения пример:` jdbc:postgresql://v39:5432/intern199` - *Пользователь* \ Имя пользователя для подключения к БД - *Пароль* Пароль для подключения к БД ```{note} Параметры подключения к БД можно узнать у куратора проекта или системного администратора ``` ### Подключаемые модули В списке подключаемых модулей, будут подобраны основные модули, для создания проекта. Их можно удалить или добавить новые. После выполнить операцию "Подобрать зависимости». ### Завершение создание проекта. 1. По завершению конфигурации выполните операцию "Создать проект" \ При этом: - В случае работы с svn, в репозитории системы контроля версий будет создана структура каталогов проекта (каталог хранения проекта приложения, каталог хранения проектных модулей) - Отобразится диалог конфигурации сервера для запуска проекта 2. Завершите конфигурацию сервера 3. Импортируйте проект в Intellij Idea ## Модули Интерфейс для работы с модулями проекта расположен на панели инструментов главного меню. Позволяет выполнять настройку модулей, подключать существующие модули, создавать новые. ## Создание модуля Операция позволяет создать новый модуль и подключить его к проекту. 1. На панели инструментов выполните операцию `Подключить модули > Создать новый модуль` 2. В открывшемся мастере введите: 1. *Системное имя* \ Имя модуля в нижнем регистре 2. *Наименование модуля* 3. *Проектный модуль* (только для режима SVN) \ Если установить этот признак, то модуль будет создан внутри каталога проекта в подкаталоге module, и не будет доступен к подключению в других проекта. Если признак не установить, то модуль будет создан в основном каталоге модулей (`ASSource/module`) и будет доступен к подключению в других проектах. 3. Подключите модули, от которых будет зависеть создаваемый модуль ## Обозреватель проекта Отображает дерево сущностей проекта с возможностью их редактирования и просмотра документации. Сущности в обозревателе проекта: - Классы - Выборки - Прикладная бизнес-логика (Api) - Пакеты прикладной бизнес-логики (Pkg) Для вызова используется операция панели инструментов главного меню «Обозреватель проекта» ### Дерево сущностей В дереве отображаются сущности, сгруппированные по каталогам. Для классов отображаются в качестве потомков их базовая выборка и Api Дерево отображается в двух режимах, которые переключаются флагами на панели фильтров: - *Логическая структура* \ Каталоги для сущностей определяются так: если в метаданных класса, выборки или пакета указан тег `logicFolder`, то каталогом этой сущности будет указанное значение, иначе физический каталог. Пример значения: `logicFolder = "audit.test"` - *Физическая структура* \ Каталоги для сущностей определяются их расположением внутри проекта. Например для scala-пакета `ru.bitec.app.btk.audit.test` каталогом будет `audit.test` Основная закладка для всех сущностей — это "Описание", которое формируется на основе документации, которая хранится в исходном коде. Подробнее см. главу "Документирование" ### Создание новых сущностей Реализовано создание основных сущностей: - *Класс* \ Создает odm-файл - *Выборка* \ Создает avi и avm файлы - *Пакет* \ Создает Pkg и pkg.xml файлы - *Описание каталога* Создает package-info.java в указанном каталоге. ### Тегирование Позволяет для сущностей повесить разнообразные теги. Которые будут отображены в дереве обозревателя. Настройка доступных тегов осуществляется в гл. меню `Настройка > Теги обозревателя проекта` Для установки тегов сущности используется операция `Дополнительно > Редактировать теги` ### Документирование Для сущностей на закладке "Описание" собирается их документация, хранящаяся в исходном коде. Документация пишется в mark down. Формирование описания по типам сущностей: #### Класс Документация для класса хранится в odm файле. В теге `documentation`, который доступен для: - класса - Атрибута #### Выборка Документация для выборки хранится в Avm файле. В тег `documentation`, который доступен для: - Выборки - Отображения - Атрибута #### Api Документация хранится в scala doc в файле Api-класса #### Pkg Документация хранится в: - теге `documentation` файла pkg.xml - scala doc Pkg-класса - #### Каталог Документация хранится в package-info.java, расположенном в каталоге на диске в scala-ветке. Документация в нем так же пишется в mark down. #### Модуль Документация хранится в `package-info.java`, расположенном корневом каталоге scala-ветки ### Интеграция с IntelliJ IDEA Интеграция осуществляется через плагин для IDEA Позволяет открывать файлы в IDEA, которые соответствуют записям в дереве обозревателя. Для некоторых сущностей есть возможность открывать дополнительные файлы. Если не открыт текущий проект в IDEA, то будет выдано сообщение, что проект не найден. При открытии проекта в IDEA запускается json-rpc сервер, который получает порт для прослушивания, и сохраняет в структуре проекта файл `.idea/ideasocket/<номер порта>.lock`, при этом блокируя файл. Конфигуратор при отправлении команды на открытие файла сканирует эту директорию на наличие заблокированных файлов, и получает порт, в который требуется отправлять данные. Для открытия файла в IDE используется операция "Открыть в IDE" Открываемые файлы по типам сущностей: - *Класс* \ Открывает odm-файл - *Выборка* \ Открывает Avi-файл. \ Дополнительная подоперация позволяет открыть avm - *Api* \ Открывает Api-файл - *Pkg* \ Открывает Pkg.scala \ Дополнительная подоперация позволяет открыть pkg.xml ## Разработка конфигуратора Код конфигуратора содержится в отдельном модуле. Для разработки этого модуля необходимо его настроить в режим разработки. Конфигурация модуля происходит в файле `global3.config.xml` через тэги: - `database` \ Конфигурация базы данных с именем "{DB_ALIAS}.CFG", где DB_ALIAS имя базы к которой идет подключение. - `sbt` Настройка модуля содержащего исходный код конфигуратора. ### Конфигурация базы данных Если конфигурация отсутствует она создаются автоматически по алгоритму: 1. Скопировать конфигурацию "{DB_ALIAS}" в "{DB_ALIAS}.CFG" 2. Заменить имя sbt на значения `cfg` ```XML ``` ### Конфигурация SBT Если конфигурация sbt отсутствует, формируется конфигурация по умолчанию. Шаблон конфигурации: ```xml ``` где: - `GLOBAL3_HOME` \ Переменная окружения указывающая на расположения дистрибутива.\ Данная переменная задается автоматически при старте сервера #### Конфигурация sbt для разработчика Для разработки необходимо переопределить конфигурацию sbt по шаблону: ```xml ``` #### Алгоритм формирования для режима системной разработки Для перехода в режим разработки: - Задайте переменную окружения `G3_ISDEV` = `1` - Задайте переменную окружения `G3_SHARE` = "путь к jar архивам конфигуратора" Шаблон генерации конфигурации в режиме системной разработки: ```xml ```