Мы рады сообщить о выпуске новых релизов платформы CUBA и CUBA Studio!
Самым главным обновлением на этот раз является изменение лицензионной политики: основная часть платформы теперь распространяется под open source лицензией Apache 2.0. Кроме этого, в платформе и Studio появились новые возможности, а также исправления и улучшения текущей функциональности. Ключевые изменения перечислены ниже.
Улучшения механизма контроля доступа
Мы серьезно поработали над улучшением механизма контроля доступа на уровне данных (row-level security). Теперь вы можете устанавливать ограничения на чтение/запись/удаление, а также проверять ограничения в памяти для атрибутов-коллекций. Редактор ограничений включает в себя визуальный инструмент для быстрого создания фрагментов кода на JPQL и Groovy для выбранных атрибутов сущности.
Поддержка MySQL
Платформа теперь “из коробки” поддерживает базу данных MySQL. Однако, если вам нужно создать ограничение уникальности для soft deleted сущности, вам придется выполнить некоторые дополнительные действия, описанные в документации. Это связано с тем, что MySQL не поддерживает частичные индексы.
Свойства приложения
Задание значений для свойств приложения всегда было неочевидной задачей, особенно для новичков. Куда вписывать значение, как изменить его в процессе работы приложения? Поэтому мы переместили как можно больше свойств приложения в базу данных и сделали специальный экран для управления ими: Администрирование > Свойства приложения.
Еще одно улучшение, касающееся механизма свойств приложения, заключается в том, что теперь вы можете задавать или переопределять их значения при помощи системных свойст Javа, то есть, используя аргументы в командной строке. Это может упростить настройку развертывания в облаке.
REST API
Универсальный REST API теперь - отдельный модуль. Он может использоваться как в модуле web, так и в модуле portal. Таким образом, больше нет необходимости создавать отдельный портальный модуль в проекте - просто установите флаг Project properties > Advanced > REST API in web module в Studio, и REST API будет работать в вашем стандартном модуле с веб-интерфейсом. Если вы не используете Studio, посмотрите в документации, как сделать это вручную.
Фондовые графики
Мы интегрировали в модуль Charts новый вид графиков - фондовые графики из новейшей версии библиотеки AmCharts.
CUBA Studio 2.1
Создание модели данных на основе существующей БД
Мы наконец-то реализовали долгожданную функциональность - поддержку миграции с устаревших БД. Studio теперь позволяет генерировать модель данных и стандартные экраны пользовательского интерфейса на основе данных из вашей текущей БД. Она также создает набор корректирующих скриптов, которые необходимо применить к БД, чтобы сделать ее совместимой с сущностями платформы CUBA. Эта функциональность существенно ускоряет переход с устаревших систем: вы можете создать фундамент нового приложения за считанные минуты, запустить его на реальных данных и затем приступить к реализации новой бизнес-логики и экранов пользовательского интерфейса на базе CUBA.
Расширение платформы CUBA за счет собственных компонентов
Когда вы оцениваете новый UI-фреймворк, вероятно, один из первых вопросов, который возникает у вас в уме, это: “Что делать, если мне потребуется визуальный компонент, которого нет в стандартном списке?".
CUBA Studio теперь позволяет генерировать код, который требуется для интеграции сторонних компонентов, таких как аддоны Vaadin, библиотеки JavaScript или компоненты GWT. Конечно, вы можете интегрировать в платформу и собственноручно написанные компоненты на основе этих технологий. Более того, Studio может отображать ваши кастомные компоненты в библиотеке компонентов, что позволяет разработчику манипулировать ими в WYSIWYG-редакторе интерфейса, точно так же, как и стандартными компонентами. В документации есть подробный пример использования кастомных UI-компонентов в проектах приложений.
Развертывание в облаке в один клик
Studio теперь поддерживает быстрое развертывание в облаке Jelastic. Вам нужно просто создать аккаунт у одного из хостинг-провайдеров Jelastic, а потом настроить развертывание вашего приложения на странице Cloud deployment settings в Studio. После этого, в меню появится пункт Run > Deploy to cloud, который позволяет вам собрать WAR-файл и развернуть его в выбранной среде.
Разработка CUBA-приложений на Groovy
В Studio добавлена поддержка Groovy. Если вы установите флаг Groovy support на вкладке Project properties > Advanced, Studio добавит в файл build.gradle вашего проекта плагин Groovy и будет генерировать исходные файлы Groovy вместо исходников Java при автоматическом создании контроллеров экранов и заготовок сервисов.
Полный список изменений Studio 2.1 доступен здесь.
Полный список изменений CUBA Platform 6.1 доступен здесь.