Application Adapter в Liferay

Вот уж точно - век живи, век учись. Про фичу "Application Adapter" я слышал еще на симпозиуме в Будапеште, но как я понял - она планировалась либо для версии 6.2, либо в 6.1 - но Enterprise Edition.

А вот, оказывается, она уже есть в текущей версии 6.1.1 (GA2 CE).

О чем речь? В Liferay есть специальный тип хуков - jsp hook - данный тип хуков позволяет  подсунуть в  Liferay  свою реализацию любой стандартной jsp-хи. Например, хочется вам из редактирования блогов убрать лишние поля, либо добавить какое-то сообщение в форму логина - просто переопределяете в своем проекте соответствующую  JSP, и после деплоя Liferay начнет использовать ее. Подробней о JSP Hook-ах можно прочитать в Development Guide: http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/overriding-a-j-4

Но вот что делать, если необходимо, чтобы изменения в JSP присутствовали не на всем портале, а только на определенных сайтах. Вот тут и приходит на помощь Application Adapter.

На удивление, о нем достаточно подробно написано в том же Development Guide, только кто же читает этот FM?

Если вкратце, то, для того что бы JSP хук превратился в Application Adapter, необходимо:

1. При описании хука в файле liferay-hook.xml указать, что он не глобальный:

 

<custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>
<custom-jsp-global>false</custom-jsp-global>
 
2. дальше как обычно переопределяем JSP  страницы и деплоим плагин
3. После деплоя, в настройках сайта вы сможете указать данный плагин как Application Adapter, применяемый к данному сайту