Выпущена бета версия платформы 7.2

Добрый день!
Мы выпустили бета-версию 7.2 платформы и основных аддонов (rest, reports, charts, fts, bpm).

Наиболее важные изменения:

  • Kotlin поддерживается как полноценная замена Java для создания приложений.

  • Подсистема контроля доступа (security) теперь работает в режиме “запрещено по умолчанию” вместо предыдущего “разрешено по умолчанию”. Это означает, что если на некоторый объект не дано разрешения, то он недоступен пользователю. Кроме того, теперь можно определять роли, разрешения, группы доступа и ограничения в коде приложения используя аннотированные классы Java.

  • Деплоймент стал более простым благодаря возможности указывать параметры соединения с БД в свойствах приложения, стандартного подхода к указанию домашнего каталога приложения и конфигурации логгирования, поддержке профилей окружения Spring.

  • В Generic UI фреймворк теперь предоставляет складывающееся боковое меню; поддержку нового экрана логина; вложенное в дескриптор экрана определение представлений, простое конфигурирование стандартных действий, гибкое позиционирование в Form, и множество других улучшений.

Полный список важных изменений см. в Release Notes.

Руководство по разработке приложений также в основном обновлено, но мы продолжаем работать над ним.

Артефакты платформы 7.2.0.BETA доступны в обоих репозиториях: repo.cuba-platform.com и dl.bintray.com. Пожалуйста используйте последнюю версию CUBA Studio 13 BETA2 для корректной миграции существующих проектов. Studio 13.0.BETA опубликована в отдельном канале плагинов в репозитории JetBrains, чтобы установить ее, вам нужно выполнить следующее:

  • Открыть диалог IDEA Settings -> Plugins
  • Нажать иконку :gear: и выбрать Manage Plugin Repositories.
  • Нажать “+” чтобы добавить строку
  • Ввести следующий Repository URL:
    https://plugins.jetbrains.com/plugins/beta/list
  • Переключиться на вкладку Marketplace. Вы должны сразу увидеть, что плагин CUBA предлагается к обновлению на версию 13.0.BETA.
  • Нажмите Update.

Чтобы найти CUBA 7.2.0.BETA в репозиториях, отметьте флажок Show unstable versions в мастере создания или в окне свойств проекта.

Если ваш проект использует аддон REST API, обновите его версию на 7.2.0.BETA1 в build.gradle вручную:

dependencies {
    appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
    appComponent('com.haulmont.addon.restapi:restapi-global:7.2.0.BETA1')
}

Мы занимаемся тестированием новой версии фреймворка и аддонов, и будем очень благодарны, если вы протестируете ваши проекты на текущей бета-версии и сообщите нам о встреченных проблемах.

Ждем ваших откликов!

3 симпатии

Пока не прошел номер с обновлением нашего проекта.
Само обновление проекта с Platform 7.1.1 прошло. А сборка после обновления не прошла.
Мы расширяли PersistenceSecurityImpl для реализации хитрой логики ограничений доступа в зависимости от контента документа.
Теперь в PersistenceSecurityImpl нет метода getConstraints и isPermittedInMemory.

Здравствуйте,

  • Вместо isPermittedInMemory можно использовать isNotPermittedInMemory
  • Stream com.haulmont.cuba.core.sys.SecurityImpl#getConstraints(MetaClass metaClass)
1 симпатия

Перестал работать вот такой код:
image
Не может получить getDate из Event.

Там вроде бы достаточно инжектировать его с типом:

    @Inject
    private Calendar<Date> calendar;

Интересно а с каким еще типом можно инжектировать?
Было все логично а теперь нужно простые вызовы методов приводить к Date :frowning: :
image

Добрый день,
На вашем скриншоте видно, что IDEA подчеркнула желтым Calendar.CalendarEventClickEvent.
Это не просто так, на эти предупреждения нужно обращать внимание, они полезны.

Данное предупреждение говорит о “Raw use of parameterized class …”.
Т.е. в CUBA 7.2 и Calendar и связанные с ним классы параметризуются типом-датой.

Если вы поменяете заголовок метода и добавите тип:

public void onCalendarCalendarEventClick(Calendar.CalendarEventClickEvent<Date> event) {

Тогда event.getCalendarEvent().getStart() будет иметь тип Date (или другой тип даты, если календарь ориентирован на другие поля), и приводить тип не понадобится.

1 симпатия

Спасибо за разъяснения, теперь понятно.

После обновления с 7.2.0.BETA1 на BETA2 перестало пускать в приложение:

08:51:10.915 [http-nio-8080-exec-42] WARN com.haulmont.cuba.security.auth.checks.ClientTypeUserAccessChecker - Attempt of login to WEB for user ‘LoginPasswordCredentials{login=‘admin’}’ without cuba.gui.loginToClient permission

Добрый день!
Это проблема перехода между бетами, при миграции с 7.1 сразу на 7.2.beta2 ее не возникает.
Либо смигрируйте проект снова с 7.1, либо пропишите в app.properties:

cuba.security.rolesPolicyVersion=1
cuba.security.defaultPermissionValuesConfigEnabled=true
cuba.security.minimalRoleIsDefault=false

В последнем случае у вас могут также сформироваться скрипты обновления БД с удалением колонок DEFAULT_*_ACCESS из таблицы SEC_ROLE - это нормально, их можно выполнить.

С уважением,
Константин

Назад вернуться на 7.1. не получилось, Gradle ругается на 95 строку в файле build.gradle:
image
А вот подстановка строк в app.properties, помогла.