|
9 | 9 |
|
10 | 10 | package org.sipfoundry.sipxconfig.callqueue;
|
11 | 11 |
|
| 12 | +import java.io.File; |
| 13 | +import java.io.IOException; |
12 | 14 | import java.util.ArrayList;
|
13 | 15 | import java.util.Collection;
|
14 | 16 | import java.util.Collections;
|
15 | 17 | import java.util.List;
|
| 18 | +import java.util.Set; |
16 | 19 |
|
17 | 20 | import org.hibernate.Query;
|
18 | 21 | import org.sipfoundry.sipxconfig.alias.AliasManager;
|
19 |
| -import org.sipfoundry.sipxconfig.feature.Bundle; |
20 |
| -import org.sipfoundry.sipxconfig.feature.FeatureChangeRequest; |
21 |
| -import org.sipfoundry.sipxconfig.feature.FeatureChangeValidator; |
22 |
| -import org.sipfoundry.sipxconfig.feature.FeatureManager; |
23 |
| -import org.sipfoundry.sipxconfig.feature.FeatureProvider; |
24 |
| -import org.sipfoundry.sipxconfig.feature.GlobalFeature; |
25 |
| -import org.sipfoundry.sipxconfig.feature.LocationFeature; |
26 |
| - |
| 22 | +import org.sipfoundry.sipxconfig.cfgmgt.ConfigManager; |
| 23 | +import org.sipfoundry.sipxconfig.cfgmgt.ConfigRequest; |
| 24 | +import org.sipfoundry.sipxconfig.cfgmgt.ConfigUtils; |
27 | 25 | import org.sipfoundry.sipxconfig.common.BeanId;
|
| 26 | +import org.sipfoundry.sipxconfig.common.ExtensionInUseException; |
| 27 | +import org.sipfoundry.sipxconfig.common.NameInUseException; |
28 | 28 | import org.sipfoundry.sipxconfig.common.Replicable;
|
29 | 29 | import org.sipfoundry.sipxconfig.common.SameExtensionException;
|
30 | 30 | import org.sipfoundry.sipxconfig.common.SipxHibernateDaoSupport;
|
31 |
| -import org.sipfoundry.sipxconfig.common.NameInUseException; |
32 |
| -import org.sipfoundry.sipxconfig.common.ExtensionInUseException; |
33 | 31 | import org.sipfoundry.sipxconfig.common.UserException;
|
34 | 32 | import org.sipfoundry.sipxconfig.commserver.Location;
|
35 | 33 | import org.sipfoundry.sipxconfig.commserver.imdb.ReplicationManager;
|
36 |
| - |
| 34 | +import org.sipfoundry.sipxconfig.feature.Bundle; |
| 35 | +import org.sipfoundry.sipxconfig.feature.FeatureChangeRequest; |
| 36 | +import org.sipfoundry.sipxconfig.feature.FeatureChangeValidator; |
| 37 | +import org.sipfoundry.sipxconfig.feature.FeatureManager; |
| 38 | +import org.sipfoundry.sipxconfig.feature.GlobalFeature; |
| 39 | +import org.sipfoundry.sipxconfig.feature.LocationFeature; |
| 40 | +import org.sipfoundry.sipxconfig.freeswitch.FreeswitchAction; |
| 41 | +import org.sipfoundry.sipxconfig.freeswitch.FreeswitchCondition; |
| 42 | +import org.sipfoundry.sipxconfig.freeswitch.FreeswitchFeature; |
| 43 | +import org.sipfoundry.sipxconfig.setting.BeanWithSettingsDao; |
37 | 44 | import org.springframework.beans.factory.BeanFactory;
|
38 | 45 | import org.springframework.beans.factory.BeanFactoryAware;
|
39 | 46 | import org.springframework.beans.factory.annotation.Required;
|
40 | 47 | import org.springframework.dao.support.DataAccessUtils;
|
41 | 48 |
|
42 |
| -import org.sipfoundry.sipxconfig.setting.BeanWithSettingsDao; |
43 |
| - |
44 |
| -import org.sipfoundry.sipxconfig.freeswitch.FreeswitchCondition; |
45 |
| -import org.sipfoundry.sipxconfig.freeswitch.FreeswitchAction; |
46 |
| -import org.sipfoundry.sipxconfig.freeswitch.FreeswitchFeature; |
47 |
| - |
48 |
| -public class CallQueueContextImpl extends SipxHibernateDaoSupport implements CallQueueContext, BeanFactoryAware, |
49 |
| - FeatureProvider { |
| 49 | +public class CallQueueContextImpl extends SipxHibernateDaoSupport implements CallQueueContext, BeanFactoryAware { |
50 | 50 |
|
51 | 51 | private static final String QUERY_CALL_QUEUE_IDS = "callQueueIds";
|
52 | 52 | private static final String QUERY_CALL_QUEUE_AGENT_IDS = "callQueueAgentIds";
|
@@ -413,4 +413,18 @@ public void getBundleFeatures(FeatureManager featureManager, Bundle b) {
|
413 | 413 | }
|
414 | 414 | }
|
415 | 415 |
|
| 416 | + @Override |
| 417 | + public void replicate(ConfigManager manager, ConfigRequest request) throws IOException { |
| 418 | + if (!request.applies(CallQueueContext.FEATURE)) { |
| 419 | + return; |
| 420 | + } |
| 421 | + |
| 422 | + Set<Location> locations = request.locations(manager); |
| 423 | + List<Location> enabledLocations = manager.getFeatureManager().getLocationsForEnabledFeature(FEATURE); |
| 424 | + for (Location location : locations) { |
| 425 | + File dir = manager.getLocationDataDirectory(location); |
| 426 | + boolean enabled = enabledLocations.contains(location); |
| 427 | + ConfigUtils.enableCfengineClass(dir, "sipxcallqueue.cfdat", enabled, "callqueue"); |
| 428 | + } |
| 429 | + } |
416 | 430 | }
|
0 commit comments