Можно ли создать хук в Liferay Navigation? Я хотел бы создать его для взаимодействия с изменениями сайта. Например, на сайте «А» все портлеты подключаются к схеме БД «А», но на сайте «Б» те же самые портлеты подключаются к схеме «Б».
В настоящее время я использую PhaseListener, чтобы получить сайт из ThemeDisplay и установить его в глобальной переменной сеанса, например:
//get the theme display from the current request
ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
theme.getSiteGroupName(); //connect to datastore based on this value
Я считаю, что было бы более эффективно, если бы это изменение основывалось на навигации по сайту, чтобы не помещать этот прослушиватель во все портлеты.
Мысли и комментарии?