Компания Liferay объявила о выходе последней milestone версии Liferay 7.0 m7. Это означает что дальше пойдут уже альфы и беты, в которых будет идти исправление ошибок — функциональных же изменений уже особо не ожидается. И хотя до релиза еще примерно полгода, уже сейчас можно посмотреть что же нового нас ждет в новой версии Liferay![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/434/a9f/940/434a9f9401f7dc5dcfd4428de49966f0.png)
Сначала небольшое вступление для тех, кто не знает что такое Liferay. Если в двух словах — это SharePoint, но на Java и Open-Source.
Если очень упрощенно — то это самое точное определение. Хотя все конечно не так просто и так прямолинейно.
Если чуть подробней — это веб-портал, разрабатываемый на технологиях Java Enterprise Edition (о технологиях чуть ниже) по схеме Open Source. При этом есть компания, которая занимается целеноправленным развитием данного продукта и оказывает Enterprise- поддержку (уже за деньги). Liferay можно применять
Подробней можно почитать на самом сайте Liferay или у нас (уже на русском).
Основным новшеством, из-за которого новая версия будет 7.0 а не (например) 6.3 это переход на OSGI. Это огромное изменение в плане внутренней архитектуры (да и всей экосистемы вокруг Liferay, так как это влечет за собой и изменения в разработке плагинов). Когда-то давно-давно, Liferay базировался на EJB. EJB тогда были вторые, они были большие и тяжелые, и требовали больших и тяжелых серверов для запуска (минимум JBoss) — что не всегда было оправданно. Потом Liferay перевели на легкий Spring Framework — и этого задела ему хватило лет на 7 (могу ошибаться в какой точно версии произошел этот переход — но достаточно давно). И вот теперь OSGI. Что это дает пользователям (хотя скорее программистам, реализующим решения на базе Liferay — конечным пользователям все равно на каких технологиях сделано):
Итак, ждем с нетерпением. Одно пугает — такие серьезные архитектурные изменения не даются легко и просто — но я надеюсь что все-таки к релизу версия (в том числе и силами сообщества) будет хорошо протестирована.
Чего к сожалению не ожидается:
Большие изменения ожидаются в пользовательском интерфейсе:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/88d/ec8/669/88dec8669028028dc53b808f4e5e1ba3.png)
На самом деле плагин Audience Targeting доступен уже и в 6.2, но в 7-ке он должен раскрыться во всей красе. Что это такое? Это сегментирование пользователей портала (по различным критериям) и отображение различного контента для различных сегментов. Плюс поддержка компаний. Базовый функционал для любой уважающей себя CMS наконец-то стал доступен и в Liferay (а как нам его не хватало!)
Понятно, что (например) геолокацию и сегментирование по регионам России придется дописывать — но это (смотрим выше на OSGI) можно будет уже сделать просто отдельным плагином.
Liferay продолжает смелый эксперимент по внедрению своего нового, инновационного редактора. Нет больше никаких тулбаров и кнопочек. Только контекстное редактирование
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/ef7/7ab/d91/ef77abd919a4285424d3dacd3d6c0602.png)
Тоже такое решение — на любителя. У меня например есть клиенты, которые просят выкинуть из Liferay 6.2 CKEditor 4 и ввернуть старый FCKEditor 3, ибо он «больше похож на старый ворд которым все привыкли пользоваться». Вот и как им объяснять про инновационное контекстное редактирование?
Благо что можно легко настраивать какой именно редактор используется
Можно теперь привязать любой контент к географической точке и строить (например) интерактивные карты
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/c1f/b34/59a/c1fb3459ada21dc4b87e9905edf5f542.png)
В Liferay есть такая штука как Staging — это когда вы на отдельном (тестовом) сайте подготавливаете все необходимые изменения (новые страницы, новый контент) и потом по нажатию кнопки (или по расписанию) после прохождения необходимого согласования публикуете на рабочем сервере. Штука полезная, так как (например) позволяет не «ломать» нагруженный продуктовый кластер а спокойно делать свои изменения на тестовом сервере и потом публиковать их ночью на прод. Правда в жизни вылезает куча нюансов — и кто работал в Liferay со staging-ом по достоинству оценит возможность запоминать конфигурацию для stage в виде шаблонов для повторного использования.
На самом деле это лишь небольшой список основных изменений. В ходе работы над новой версией ребята из Liferay уже выполнили огромную работу (только в рамках Liferay 7.0 m7 закрыто порядка 170-ти User Story) и очень хочется надеяться что они доведут работу до конца (с хорошим качеством) и через полгода мы увидим новую версию.
![image](https://habrastorage.org/getpro/habr/post_images/434/a9f/940/434a9f9401f7dc5dcfd4428de49966f0.png)
Что такое Liferay?
Сначала небольшое вступление для тех, кто не знает что такое Liferay. Если в двух словах — это SharePoint, но на Java и Open-Source.
Если очень упрощенно — то это самое точное определение. Хотя все конечно не так просто и так прямолинейно.
Если чуть подробней — это веб-портал, разрабатываемый на технологиях Java Enterprise Edition (о технологиях чуть ниже) по схеме Open Source. При этом есть компания, которая занимается целеноправленным развитием данного продукта и оказывает Enterprise- поддержку (уже за деньги). Liferay можно применять
- и классически — как внутрикорпоративный портал (организация совместной работы сотрудников) или корпоративную соцсеть,
- и для создания внешних сайтов (один из примеров — недавно упоминавшийся на хабре сайт мобильного оператора Yota),
- а можно использовать его как платформу для разработки своих приложений (очень хорошо на нем получаются различные B2B и B2C решения).
Подробней можно почитать на самом сайте Liferay или у нас (уже на русском).
Изменения в архитектуре
Основным новшеством, из-за которого новая версия будет 7.0 а не (например) 6.3 это переход на OSGI. Это огромное изменение в плане внутренней архитектуры (да и всей экосистемы вокруг Liferay, так как это влечет за собой и изменения в разработке плагинов). Когда-то давно-давно, Liferay базировался на EJB. EJB тогда были вторые, они были большие и тяжелые, и требовали больших и тяжелых серверов для запуска (минимум JBoss) — что не всегда было оправданно. Потом Liferay перевели на легкий Spring Framework — и этого задела ему хватило лет на 7 (могу ошибаться в какой точно версии произошел этот переход — но достаточно давно). И вот теперь OSGI. Что это дает пользователям (хотя скорее программистам, реализующим решения на базе Liferay — конечным пользователям все равно на каких технологиях сделано):
- Ядро портала теперь модульное. Можно легко отключить лишнее. Один из минусов Liferay называли, что в его ядре много «лишнего». Ставя Liferay пользователи получали не только Portlet Container и админку с необходимым базовым функционалом — но и кучу модулей, причем необходимость некоторых из них вызывала большие сомнения. Теперь можно будет сформировать свой набор модулей, которые мы хотим что бы вошли в ядро
- Все плагины (дополнения к порталу) разрабатываются теперь как OSGI модули. Раньше каждый плагин был отдельным web-приложением (с точки зрения Application Server-а) которое общалось с порталом через хитрый механизм под названием BeanLocator (который был по сути дела хаком). Теперь все честно, все строго в рамках базовых технологий
- Проще вносить изменения в само ядро портала. Просто замените модуль реализующий требуемую функциональность на свой. Все, надеюсь больше не потребуется никаких ext-плагинов (кто занимался глубокой кастомизацией Liferay, тот поймет)
Итак, ждем с нетерпением. Одно пугает — такие серьезные архитектурные изменения не даются легко и просто — но я надеюсь что все-таки к релизу версия (в том числе и силами сообщества) будет хорошо протестирована.
Чего к сожалению не ожидается:
- Сервером по умолчанию по прежнему остается Tomcat 7. На самом деле очень хотелось бы увидеть Tomcat 8 и использование WebSockets в портале
- Реализация веб-сервисов по прежнему на первом Axis. Тут без слов. Видимо придется ждать 8-ой версии.
Изменения в UI
Большие изменения ожидаются в пользовательском интерфейсе:
- Новая тема. Обещают более «легкую», mobile-friendly и все такое. Так же и более кастомизируемую. Пока сложно оценить что за этим стоит, но если сделают надпись «Powered by Liferay» отключаемой или конфигурируемой — это будет большим шагом вперед :)
- Новое управление. Всем. Нет теперь отдельной Control Panel-и. Есть Product Menu (вылезает слева). Управление страницей из боковых кнопок перекочевало в подвал страницы. Ну и многое другое. Тут я чувствую придется долго привыкать
![image](https://habrastorage.org/getpro/habr/post_images/88d/ec8/669/88dec8669028028dc53b808f4e5e1ba3.png)
- Загрузка страниц Ajax-ом: многие портлеты теперь могут загружать свой контент без перезагрузки страницы (например переход из списка блогов к конкретной записи). Важно — что такая поддержка на уровне базового framework-а, так что ее можно использовать везде.
Audience Targeting
На самом деле плагин Audience Targeting доступен уже и в 6.2, но в 7-ке он должен раскрыться во всей красе. Что это такое? Это сегментирование пользователей портала (по различным критериям) и отображение различного контента для различных сегментов. Плюс поддержка компаний. Базовый функционал для любой уважающей себя CMS наконец-то стал доступен и в Liferay (а как нам его не хватало!)
Понятно, что (например) геолокацию и сегментирование по регионам России придется дописывать — но это (смотрим выше на OSGI) можно будет уже сделать просто отдельным плагином.
Новый редактор
Liferay продолжает смелый эксперимент по внедрению своего нового, инновационного редактора. Нет больше никаких тулбаров и кнопочек. Только контекстное редактирование
![image](https://habrastorage.org/getpro/habr/post_images/ef7/7ab/d91/ef77abd919a4285424d3dacd3d6c0602.png)
Тоже такое решение — на любителя. У меня например есть клиенты, которые просят выкинуть из Liferay 6.2 CKEditor 4 и ввернуть старый FCKEditor 3, ибо он «больше похож на старый ворд которым все привыкли пользоваться». Вот и как им объяснять про инновационное контекстное редактирование?
Благо что можно легко настраивать какой именно редактор используется
Геопривязка контента
Можно теперь привязать любой контент к географической точке и строить (например) интерактивные карты
![image](https://habrastorage.org/getpro/habr/post_images/c1f/b34/59a/c1fb3459ada21dc4b87e9905edf5f542.png)
Шаблоны для Staging-а
В Liferay есть такая штука как Staging — это когда вы на отдельном (тестовом) сайте подготавливаете все необходимые изменения (новые страницы, новый контент) и потом по нажатию кнопки (или по расписанию) после прохождения необходимого согласования публикуете на рабочем сервере. Штука полезная, так как (например) позволяет не «ломать» нагруженный продуктовый кластер а спокойно делать свои изменения на тестовом сервере и потом публиковать их ночью на прод. Правда в жизни вылезает куча нюансов — и кто работал в Liferay со staging-ом по достоинству оценит возможность запоминать конфигурацию для stage в виде шаблонов для повторного использования.
На самом деле это лишь небольшой список основных изменений. В ходе работы над новой версией ребята из Liferay уже выполнили огромную работу (только в рамках Liferay 7.0 m7 закрыто порядка 170-ти User Story) и очень хочется надеяться что они доведут работу до конца (с хорошим качеством) и через полгода мы увидим новую версию.