1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.cache.setup;
35
36 import info.magnolia.cms.core.HierarchyManager;
37 import info.magnolia.cms.core.NodeData;
38 import info.magnolia.module.InstallContext;
39 import info.magnolia.module.delta.ConditionalDelegateTask;
40 import info.magnolia.module.delta.Task;
41 import info.magnolia.module.delta.TaskExecutionException;
42
43 import javax.jcr.RepositoryException;
44 import java.util.ArrayList;
45 import java.util.Collection;
46 import java.util.Iterator;
47 import java.util.List;
48
49
50
51
52
53 public class DefaultCompressibleContentTypesCondition extends ConditionalDelegateTask {
54
55 private final String checkedNodeName;
56
57 public DefaultCompressibleContentTypesCondition(String taskName, String taskDescription, Task ifTrue, Task ifFalse, String checkedNodeName) {
58 super(taskName, taskDescription, ifTrue, ifFalse);
59 this.checkedNodeName = checkedNodeName;
60 }
61
62 protected boolean condition(InstallContext installContext) throws TaskExecutionException {
63 try {
64 List vals = new ArrayList();
65 HierarchyManager hm = installContext.getConfigHierarchyManager();
66 if (!hm.isExist(checkedNodeName)) {
67
68 return false;
69 }
70 Collection compressionList = hm.getContent(checkedNodeName).getNodeDataCollection();
71 for (Iterator iterator = compressionList.iterator(); iterator.hasNext();) {
72 NodeData data = (NodeData) iterator.next();
73 vals.add(data.getString());
74 }
75 return vals.remove("text/html") && vals.remove("text/css") && vals.remove("application/x-javascript") && vals.isEmpty();
76
77 } catch (RepositoryException e) {
78 log.error(e.getMessage(), e);
79 }
80
81 return false;
82 }
83 }