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.delta;
35
36 import info.magnolia.cms.util.WorkspaceXmlUtil;
37
38 import java.util.List;
39
40
41
42
43
44
45
46 public class WorkspaceXmlConditionsUtil {
47 private final List<Condition> conditions;
48
49 public WorkspaceXmlConditionsUtil(List<Condition> conditions) {
50 this.conditions = conditions;
51 }
52
53
54
55
56 public void workspaceHasOldIndexer() {
57 textFilterClassesAreNotSet();
58 }
59
60 public void textFilterClassesAreNotSet() {
61 List<String> names = WorkspaceXmlUtil.getWorkspaceNamesMatching("/Workspace/SearchIndex/param[@name='textFilterClasses']/@value");
62
63 if (names.size() > 0) {
64 for (int i = 0; i < names.size(); i++) {
65 conditions.add(new FalseCondition("workspace.xml updates",
66 "Workspace definition in workspace " + names.get(i) +
67 " references indexer which has changed; please remove the parameter 'textFilterClasses'."));
68 }
69 }
70 }
71
72
73
74
75 public void paramAnalyzerIsNotSet() {
76 List<String> names = WorkspaceXmlUtil.getWorkspaceNamesMatching("/Workspace/SearchIndex/param[@name='analyzer']/@value");
77 if (names.size() > 0) {
78 for (int i = 0; i < names.size(); i++) {
79 conditions.add(new WarnCondition("workspace.xml updates",
80 "Workspace definition in workspace " + names.get(i) +
81 " Should not have an analyzer set - this will lead to error-logs when strarting up your server."));
82 }
83 }
84 }
85
86 public void accessControlProviderIsSet() {
87 List<String> names = WorkspaceXmlUtil.getWorkspaceNames("/Workspace/WorkspaceSecurity/AccessControlProvider/@class", null);
88 if (names.size() > 0) {
89 for (int i = 0; i < names.size(); i++) {
90 conditions.add(new FalseCondition("workspace.xml updates",
91 "Workspace definition in workspace " + names.get(i) +
92 " must have an AccessControlProvider set."));
93 }
94 }
95 }
96 }