1
14
15 package com.liferay.portal.kernel.cache.cluster;
16
17 import java.util.ArrayList;
18 import java.util.List;
19
20
25 public class PortalCacheClusterLink {
26
27 public void afterPropertiesSet() {
28 _portalCacheClusterChannels =
29 new ArrayList<PortalCacheClusterChannel>(_channelNumber);
30
31 for (int i = 0; i < _channelNumber; i++) {
32 _portalCacheClusterChannels.add(
33 _portalCacheClusterChannelFactory.
34 createPortalCacheClusterChannel());
35 }
36
37 if (_portalCacheClusterChannelSelector == null) {
38 _portalCacheClusterChannelSelector =
39 new UniformPortalCacheClusterChannelSelector();
40 }
41 }
42
43 public void destroy() {
44 for (PortalCacheClusterChannel portalCacheClusterChannel :
45 _portalCacheClusterChannels) {
46
47 portalCacheClusterChannel.destroy();
48 }
49 }
50
51 public long getSubmittedEventNumber() {
52 return _portalCacheClusterChannelSelector.getSelectedNumber();
53 }
54
55 public void sendEvent(PortalCacheClusterEvent portalCacheClusterEvent) {
56 PortalCacheClusterChannel portalCacheClusterChannel =
57 _portalCacheClusterChannelSelector.select(
58 _portalCacheClusterChannels, portalCacheClusterEvent);
59
60 portalCacheClusterChannel.sendEvent(portalCacheClusterEvent);
61 }
62
63 public void setChannelNumber(int channelNumber) {
64 _channelNumber = channelNumber;
65 }
66
67 public void setPortalCacheClusterChannelFactory(
68 PortalCacheClusterChannelFactory portalCacheClusterChannelFactory) {
69
70 _portalCacheClusterChannelFactory = portalCacheClusterChannelFactory;
71 }
72
73 public void setPortalCacheClusterChannelSelector(
74 PortalCacheClusterChannelSelector portalCacheClusterChannelSelector) {
75
76 _portalCacheClusterChannelSelector = portalCacheClusterChannelSelector;
77 }
78
79 private static final int _DEFAULT_CHANNEL_NUMBER = 10;
80
81 private int _channelNumber = _DEFAULT_CHANNEL_NUMBER;
82 private PortalCacheClusterChannelFactory _portalCacheClusterChannelFactory;
83 private List<PortalCacheClusterChannel> _portalCacheClusterChannels;
84 private PortalCacheClusterChannelSelector
85 _portalCacheClusterChannelSelector;
86
87 }