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.resources.setup; |
35 |
|
|
36 |
|
import info.magnolia.cms.security.Permission; |
37 |
|
import info.magnolia.cms.security.Role; |
38 |
|
import info.magnolia.cms.security.RoleManager; |
39 |
|
import info.magnolia.cms.security.Security; |
40 |
|
import info.magnolia.module.InstallContext; |
41 |
|
import info.magnolia.module.delta.AbstractTask; |
42 |
|
import info.magnolia.module.delta.ArrayDelegateTask; |
43 |
|
import info.magnolia.module.delta.BootstrapConditionally; |
44 |
|
import info.magnolia.module.delta.BootstrapSingleResource; |
45 |
|
import info.magnolia.module.delta.CheckAndModifyPropertyValueTask; |
46 |
|
import info.magnolia.module.delta.DeltaBuilder; |
47 |
|
import info.magnolia.module.delta.ModuleDependencyBootstrapTask; |
48 |
|
import info.magnolia.module.delta.NodeExistsDelegateTask; |
49 |
|
import info.magnolia.module.delta.PropertyValueDelegateTask; |
50 |
|
import info.magnolia.module.delta.RegisterServletTask; |
51 |
|
import info.magnolia.module.delta.RemoveNodeTask; |
52 |
|
import info.magnolia.module.delta.RemovePropertyTask; |
53 |
|
import info.magnolia.module.delta.SetPropertyTask; |
54 |
|
import info.magnolia.module.delta.Task; |
55 |
|
import info.magnolia.module.delta.TaskExecutionException; |
56 |
|
import info.magnolia.module.model.ServletDefinition; |
57 |
|
import info.magnolia.module.resources.ResourceTypes; |
58 |
|
import info.magnolia.module.resources.ResourcesModule; |
59 |
|
import info.magnolia.repository.RepositoryConstants; |
60 |
|
|
61 |
|
import java.util.ArrayList; |
62 |
|
import java.util.Arrays; |
63 |
|
import java.util.List; |
64 |
|
|
65 |
|
|
66 |
|
|
67 |
|
|
|
|
| 69% |
Uncovered Elements: 9 (29) |
Complexity: 4 |
Complexity Density: 0.16 |
|
68 |
|
public class ResourcesModuleVersionHandler extends ResourcesVersionHandler { |
69 |
|
|
70 |
|
protected static final String INPLACE_TEMPLATING_APP_LAUNCHER_CONFIG = "/modules/ui-admincentral/config/appLauncherLayout/groups/stk/apps/inplace-templating"; |
71 |
|
|
72 |
|
private final Task removeResourcesLegacyApp = new ArrayDelegateTask("Remove Legacy Resources app", "Removes old UI pages tree, dialogs and app launcher configuration.", |
73 |
|
new RemoveNodeTask("Remove old UI", "Removes old UI pages.", RepositoryConstants.CONFIG, "/modules/resources/pages"), |
74 |
|
new RemoveNodeTask("Remove old UI", "Removes old UI tree.", RepositoryConstants.CONFIG, "/modules/resources/trees"), |
75 |
|
new RemoveNodeTask("Remove old UI", "Removes old UI edit dialog.", RepositoryConstants.CONFIG, "/modules/resources/dialogs"), |
76 |
|
new RemovePropertyTask("Remove versionOnSave property", "", RepositoryConstants.CONFIG, "/modules/resources/config", "versionOnSave"), |
77 |
|
new RemoveNodeTask("Remove old UI", "Remove legacy resources app config from ui-admincentral", RepositoryConstants.CONFIG, "/modules/ui-admincentral/apps/resourcesApp"), |
78 |
|
new RemoveNodeTask("Remove old UI", "Remove legacy resources app from applauncher layout", RepositoryConstants.CONFIG, "/modules/ui-admincentral/config/appLauncherLayout/groups/stk/apps/resourcesApp")); |
79 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
80 |
9 |
private Task addResourcesServletMapping() {... |
81 |
9 |
ServletDefinition servletDefinition = new ServletDefinition(); |
82 |
9 |
servletDefinition.setName("ResourcesServlet"); |
83 |
9 |
servletDefinition.setClassName("info.magnolia.module.resources.ResourcesServlet"); |
84 |
9 |
servletDefinition.setComment("a servlet used by the resources module"); |
85 |
9 |
servletDefinition.addMapping("/.resources/*"); |
86 |
9 |
return new RegisterServletTask(servletDefinition); |
87 |
|
} |
88 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
|
89 |
9 |
public ResourcesModuleVersionHandler() {... |
90 |
|
|
91 |
9 |
register(DeltaBuilder.checkPrecondition("1.5", "2.0")); |
92 |
|
|
93 |
9 |
register(DeltaBuilder.update("1.5.1", "") |
94 |
|
.addTask(new NodeExistsDelegateTask("Update samples", "Update samples if they should be installed", ResourcesModule.DEFAULT_WORKSPACE, "/sample-css/MetaData", |
95 |
|
new CheckAndModifyPropertyValueTask("Update template", "Update template to new name", ResourcesModule.DEFAULT_WORKSPACE, "/sample-css/MetaData", "mgnl:template", ResourceTypes.PROCESSED_CSS_SUFFIX, ResourceTypes.PROCESSED_CSS)))); |
96 |
|
|
97 |
9 |
register(DeltaBuilder.update("1.5.4", "") |
98 |
|
.addTask(new CheckAndModifyPropertyValueTask( |
99 |
|
"Update component class", "Update cms context attribute/componentClass in text resource renderer", "config", |
100 |
|
"/modules/resources/renderers/textResource/contextAttributes/cms/", "componentClass", "info.magnolia.templating.freemarker.Directives", |
101 |
|
"info.magnolia.templating.freemarker.ReadOnlyDirectives"))); |
102 |
|
|
103 |
9 |
register(DeltaBuilder.update("1.5.5", "") |
104 |
|
.addTask(new BootstrapConditionally("Register resource loader", "Allow registration of resource loaders under config/resourceLoaders node.", "/mgnl-bootstrap/resources/config/config.modules.resources.config.xml"))); |
105 |
9 |
register(DeltaBuilder.update("1.5.8", "") |
106 |
|
.addTask(new BootstrapSingleResource("Config", "Commands configuration", "/mgnl-bootstrap/resources/commands/config.modules.resources.commands.xml"))); |
107 |
|
|
108 |
|
|
109 |
9 |
register(DeltaBuilder.update("2.0.1", "") |
110 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap Commands configuration if needed", "", RepositoryConstants.CONFIG, "/modules/resources/commands", null, |
111 |
|
new BootstrapSingleResource("Bootstrap Commands configuration", "", "/mgnl-bootstrap/resources/commands/config.modules.resources.commands.xml"))) |
112 |
|
.addTask(new NodeExistsDelegateTask("Remove version command if existing", "", RepositoryConstants.CONFIG, "/modules/resources/commands/resources/versionResources/version", |
113 |
|
new RemoveNodeTask("Remove version command", "", RepositoryConstants.CONFIG, "/modules/resources/commands/resources/versionResources/version")))); |
114 |
|
|
115 |
9 |
register(DeltaBuilder.update("2.0.2", "") |
116 |
|
.addTask(new NodeExistsDelegateTask("Change extractComment commands class if existing", "", RepositoryConstants.CONFIG, "/modules/resources/commands/resources/versionResources/extractComment", |
117 |
|
new CheckAndModifyPropertyValueTask("Update extractComment commands class", "Commands configuration", RepositoryConstants.CONFIG, "/modules/resources/commands/resources/versionResources/extractComment", "class", |
118 |
|
Arrays.asList("info.magnolia.module.resources.commands.ExtractCommentCommand", "info.magnolia.module.admininterface.commands.ExtractCommentCommand"), |
119 |
|
"info.magnolia.commands.impl.ExtractCommentCommand")))); |
120 |
|
|
121 |
9 |
register(DeltaBuilder.update("2.2", "") |
122 |
|
.addTask(removeResourcesLegacyApp)); |
123 |
|
|
124 |
9 |
register(DeltaBuilder.update("2.2.1", "") |
125 |
|
.addTask(new RemoveNodeTask("Remove obsolete command", "Remove obsolete version command configuration", RepositoryConstants.CONFIG, |
126 |
|
"/modules/resources/commands/resources/versionResources/version"))); |
127 |
|
|
128 |
9 |
register(DeltaBuilder.update("2.2.2", "") |
129 |
|
.addTask(new NodeExistsDelegateTask("Register observation for resources if not configured", "Register observation for resources if not configured", RepositoryConstants.CONFIG, |
130 |
|
"/modules/observation/config/listenerConfigurations/versionResourcesOnChange", null, |
131 |
|
new ModuleDependencyBootstrapTask("observation")) |
132 |
|
)); |
133 |
|
|
134 |
9 |
register(DeltaBuilder.update("2.4", "") |
135 |
|
.addTask(new NodeExistsDelegateTask("Yaml file resources template", "/modules/resources/templates", |
136 |
|
new BootstrapSingleResource("", "Register template for Yaml file resources.", "/mgnl-bootstrap/resources/templates/config.modules.resources.templates.yaml.xml"))) |
137 |
|
|
138 |
|
.addTask(new RemoveNodeTask("Removes ClasspathSpool servlet", "Removes ClasspathSpool servlet for URL mapping '/.resources'.", RepositoryConstants.CONFIG, "/server/filters/servlets/ClasspathSpoolServlet")) |
139 |
|
.addTask(addResourcesServletMapping()) |
140 |
|
); |
141 |
|
|
142 |
9 |
register(DeltaBuilder.update("2.4.2", "") |
143 |
|
.addTask(new ArrayDelegateTask("Change content type of JavaScript resources", |
144 |
|
new PropertyValueDelegateTask("", "/modules/resources/templates/js", "contentType", "application/x-javascript", false, |
145 |
|
new SetPropertyTask("config", "/modules/resources/templates/js", "contentType", "application/javascript")), |
146 |
|
new PropertyValueDelegateTask("", "/modules/resources/templates/processedJs", "contentType", "application/x-javascript", false, |
147 |
|
new SetPropertyTask("config", "/modules/resources/templates/processedJs", "contentType", "application/javascript")))) |
148 |
|
.addTask(new TemplateMigrationTask(new NodeExistsDelegateTask("Remove app launcher configuration for inplace templating", INPLACE_TEMPLATING_APP_LAUNCHER_CONFIG, |
149 |
|
new RemoveNodeTask("", INPLACE_TEMPLATING_APP_LAUNCHER_CONFIG)))) |
150 |
|
); |
151 |
|
} |
152 |
|
|
|
|
| 0% |
Uncovered Elements: 4 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
153 |
0 |
@Override... |
154 |
|
protected List<Task> getExtraInstallTasks(InstallContext installContext) { |
155 |
0 |
final List<Task> tasks = new ArrayList<Task>(); |
156 |
|
|
157 |
0 |
tasks.add(new AbstractTask("Anonymous permissions for resources", "Grants the anonymous user the read permission to the resources repository.") { |
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
158 |
0 |
@Override... |
159 |
|
public void execute(InstallContext ignored) throws TaskExecutionException { |
160 |
0 |
RoleManager roleMan = Security.getRoleManager(); |
161 |
0 |
Role anonymous = roleMan.getRole("anonymous"); |
162 |
0 |
roleMan.addPermission(anonymous, "resources", "/*", Permission.READ); |
163 |
|
} |
164 |
|
}); |
165 |
0 |
tasks.add(new ModuleDependencyBootstrapTask("observation")); |
166 |
|
|
167 |
0 |
return tasks; |
168 |
|
} |
169 |
|
|
170 |
|
} |