Недавно была выпущена новая версия Jmix 1.3. В этой статье я расскажу о наиболее важных обновлениях, представленных в этом функциональном релизе.
Как обычно, полную информацию об изменениях и инструкции по обновлению смотрите на странице документации "Что нового".
Требуется Java 11
Вероятно, самое важное, что следует отметить перед обновлением, это то, что Java 8 больше не поддерживается. Фреймворк теперь построен на Java 11, поэтому для создания и запуска приложений необходимо использовать Java 11 или выше.
Основной причиной отказа от Java 8 было введение экспериментального модуля FlowUI на основе Vaadin 23 (см. ниже), для которого требовалась Java 11. Мы решили, что пора двигаться дальше, а также насладиться небольшими улучшениями языка и стандартной библиотеки, доступными в Java 11.
Предварительный просмотр пользовательского интерфейса Flow
Как и было обещано, мы выпустили предварительную версию нового модуля пользовательского интерфейса на базе Vaadin 23. Он называется FlowUI и позволит вам создавать красивые отзывчивые интерфейсы с легкой настройкой фронтенда:
FlowUI будет следовать той же парадигме, что и текущий пользовательский интерфейс: модель программирования на стороне сервера, XML-макет с визуальным дизайнером в Studio, компоненты данных, аналогичный Java API. Но в то же время набор элементов управления пользовательского интерфейса и правила компоновки будут совершенно другими, поэтому не ожидайте легкой миграции в будущем.
На данный момент модуль и его поддержка в Studio очень нестабильны. Мы собираемся внести значительные и, возможно, революционные изменения в последующих патчах релиза 1.3.
Цель текущего предварительного просмотра - дать сообществу представление о том, как будет выглядеть новый пользовательский интерфейс, и начать получать отзывы о необходимых функциях и приоритетах. Мы надеемся, что к следующему функциональному релизу в октябре 2022 года мы сможем предоставить стабильный API и набор минимальных функций для создания реальных приложений с новым пользовательским интерфейсом.
Предпросмотр развертывания облака в один клик
Еще одна функция предварительного просмотра - возможность развертывания приложения в облаке AWS EC2. Чтобы увидеть ее в действии, включите ее, как описано в документации.
Эта функция позволяет быстро развернуть ваше приложение в облаке. Она генерирует файл docker-compose с сервисами на основе параметров вашего приложения и базы данных, создает виртуальную машину на AWS EC2, устанавливает на нее Docker и создает образ Docker с вашим приложением на виртуальной машине. Затем он запускает контейнеры, дает вам URL, и вуаля - ваше приложение работает в AWS и доступно всему миру!
Мы считаем, что эта функция может очень помочь, когда разработчику нужно продемонстрировать приложение клиентам или коллегам, или просто для легкого развертывания.
Улучшения студии
Теперь мы считаем конструктор JPQL достаточно надежным для редактирования существующих запросов. Он открывается при нажатии на атрибут query контейнера данных в окне инструмента «Инспектор компонентов». Вы также можете открыть конструктор для запросов, заданных в коде, с помощью значка поля.
Есть ряд улучшений, связанных с журналами изменений Liquibase:
- Studio теперь показывает существующие файлы журнала изменений Liquibase в окне инструмента Jmix под узлом Data Store.
- Вы можете создать новый пустой файл журнала изменений, используя действие окна инструмента Jmix, и написать наборы изменений вручную с помощью функции завершения кода, которая предлагает имена таблиц и столбцов, определенных в ваших сущностях.
- Имена файлов новых журналов изменений теперь включают временную метку в формате HHmmss (вместо ранее добавляемых последовательных номеров 010, 020, ...). Это должно устранить дублирование журналов изменений при переключении веток VCS.
Улучшения BPM
Мы приложили много усилий для улучшения дизайнера BPMN в Studio, так что теперь мы считаем его хорошей альтернативой конструктору среды исполнения, предлагая тесную интеграцию с вашим исходным кодом.
Кроме того, механизм BPM теперь интегрируется с дополнением Multitenancy, если оно используется в проекте.
Управление ролями
Экраны управления ролями на уровне ресурсов и строк теперь имеют фильтры для быстрого поиска при редактировании ролей или назначении их пользователям. Действия экспорта/импорта позволяют переносить конфигурацию ролей между компонентами приложения.
Редактор на уровне строк теперь предлагает завершение кода для JPQL, действие «Проверить синтаксис» и ссылку на документацию.
Поддержка каскада JPA
Следуя стандартам, мы реализовали полную поддержку каскадных операций JPA, определенных в аннотациях типа @ManyToOne(cascade = CascadeType.ALL). Все возможности Jmix (события сущностей, динамические атрибуты, журнал сущностей, безопасность, кросс-датасторные ссылки) вступают в силу для сущностей, сохраненных с помощью каскадных операций.
Что дальше?
Основным направлением в ближайшие месяцы является стабилизация модуля FlowUI, добавление необходимых компонентов пользовательского интерфейса и создание пользовательского интерфейса для важнейших частей фреймворка, таких как подсистема безопасности.
Мы также постоянно работаем над исправлением проблем в текущем релизе 1.3. Патчи 1.3.x будут выходить примерно раз в месяц.
Мы будем рады увидеть ваши отзывы на нашем форуме!
Спасибо всем, кто поделился своими идеями, предложениями и сообщениями об ошибках!