2014-09-03 2 views
1

Liferay Navigation에 후크를 만들 수 있습니까? 사이트 변경과 상호 작용하도록 사이트를 만들고 싶습니다. 예를 들어 사이트 'A'에서 모든 포틀릿은 DB 스키마 'A'에 연결되지만 사이트 'B'에서 동일한 포틀릿은 스키마 'B'에 연결됩니다.Liferay 탐색 훅

//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 

나는 사이트 탐색에 따라이 변화를 가지고 더 효과적 일 것입니다 느낌 : 예 -

나는 현재 ThemeDisplay에서 사이트를 얻을 수있는 PhaseListener를 사용하고, 글로벌 세션 변수에 설정하고 있습니다 이 수신기를 모든 포틀릿에 두는 것을 피하십시오.

의견 &?

답변

0

번호 연결은 필요에 따라 만들어지지 않으며 연결 풀에서 제공됩니다. 따라서 A를 사용하는 동안 스키마 A를 가리키는 풀에서 연결이 열렸습니다. B로 이동하려고 시도 할 때 풀의 연결은 여전히 ​​양호하며 개방되어 사용 가능하므로 풀릴 것입니다. 여전히 012를 사용하고있을 것입니다.

Liferay는 사용하는 데이터에 대한 스키마 간 전환을 실제로 처리하지 못합니다. 이런 종류의 작업은 사용자 환경에 혼란을 야기 할 수 있습니다.

+0

데이터 저장소 상호 작용을 처리하기 위해 MyBatis를 사용하고 있습니다. 각 포틀릿의 RESTORE_VIEW 단계에서 현재 사이트를 가져 와서 적절한 환경을로드합니다. Mybatis는 연결/풀 등을 처리해야합니다 ... 필자는 포틀릿이로드 될 때마다이 검사를 실행하는 것에 관심이 있습니다 (매우 작지만). 따라서 탐색 훅 (hook)이 있지만 천천히 그것이 가능하지 않다고 믿기 시작했습니다. – Floresj4