Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. package com.google.lms.portal.commons.api.lifecyle.listener;
  2.  
  3. import com.liferay.portal.instance.lifecycle.BasePortalInstanceLifecycleListener;
  4. import com.liferay.portal.kernel.cluster.ClusterMasterExecutor;
  5. import com.liferay.portal.kernel.concurrent.ConcurrentHashSet;
  6. import com.liferay.portal.kernel.exception.PortalException;
  7. import com.liferay.portal.kernel.log.Log;
  8. import com.liferay.portal.kernel.log.LogFactoryUtil;
  9. import com.liferay.portal.kernel.model.Company;
  10.  
  11. import java.util.Set;
  12.  
  13. import org.osgi.service.component.annotations.Reference;
  14.  
  15. /**
  16. * @author Igor Arouca
  17. */
  18. public abstract class ClusterableBasePortalInstanceLifecycleListener
  19. extends BasePortalInstanceLifecycleListener {
  20.  
  21. @Override
  22. public void portalInstanceRegistered(Company company) throws Exception {
  23. if (company == null) {
  24. throw new IllegalStateException(
  25. ">>> Cannot update group status keys: portal instance not " +
  26. "initialized yet");
  27. }
  28.  
  29. _registeredCompanyIds.add(company.getCompanyId());
  30.  
  31. refreshPortalInstance(company.getCompanyId());
  32. }
  33.  
  34. @Override
  35. public void portalInstanceUnregistered(Company company) throws Exception {
  36. _registeredCompanyIds.remove(company.getCompanyId());
  37. }
  38.  
  39. protected void activate() {
  40. for (long companyId : _registeredCompanyIds) {
  41. try {
  42. refreshPortalInstance(companyId);
  43. }
  44. catch (Exception e) {
  45. _log.error(
  46. ">>> Failed to refresh portal instance for companyId: " +
  47. companyId,
  48. e);
  49. }
  50. }
  51. }
  52.  
  53. protected abstract void doRefreshPortalInstance(long companyId)
  54. throws PortalException;
  55.  
  56. protected void refreshPortalInstance(long companyId)
  57. throws PortalException {
  58.  
  59. if (!_clusterMasterExecutor.isMaster()) {
  60. return;
  61. }
  62.  
  63. doRefreshPortalInstance(companyId);
  64. }
  65.  
  66. private static final Log _log = LogFactoryUtil.getLog(
  67. ClusterableBasePortalInstanceLifecycleListener.class);
  68.  
  69. @Reference
  70. private ClusterMasterExecutor _clusterMasterExecutor;
  71.  
  72. private Set<Long> _registeredCompanyIds = new ConcurrentHashSet<>();
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement