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.groovy.setup;
35
36 import info.magnolia.module.DefaultModuleVersionHandler;
37 import info.magnolia.module.InstallContext;
38 import info.magnolia.module.delta.AddURIPermissionTask;
39 import info.magnolia.module.delta.ArrayDelegateTask;
40 import info.magnolia.module.delta.BootstrapResourcesTask;
41 import info.magnolia.module.delta.DeltaBuilder;
42 import info.magnolia.module.delta.RemovePropertyTask;
43 import info.magnolia.module.delta.Task;
44
45 import java.util.ArrayList;
46 import java.util.List;
47
48
49
50
51
52
53 public class GroovyModuleVersionHandler extends DefaultModuleVersionHandler {
54
55 private final Task updateSecurityBaseRole = new AddURIPermissionTask("Update security-base role", "Disallow access to view groovy console page", "security-base", "/.magnolia/pages/groovyInteractiveConsole*", AddURIPermissionTask.DENY);
56
57 public GroovyModuleVersionHandler() {
58 register(DeltaBuilder.update("1.1", "Improved console output, some minor bugfixes and script samples.")
59 .addTask(new BootstrapResourcesTask("Groovy Scripts Samples", "Adds scripts samples.") {
60 @Override
61 protected String[] getResourcesToBootstrap(final InstallContext installContext) {
62 return new String[]{
63 "/mgnl-bootstrap-samples/groovy/scripts.deleteSomeContacts.xml",
64 "/mgnl-bootstrap-samples/groovy/scripts.importContactsFromXml.xml",
65 "/mgnl-bootstrap-samples/groovy/scripts.my.commands.GroovyMailCommand.xml",
66 "/mgnl-bootstrap-samples/groovy/scripts.simplifiedDataHierarchyNavigation.xml",
67 "/mgnl-bootstrap-samples/groovy/scripts.updateContacts.xml",
68 };
69 }
70 }));
71
72 register(DeltaBuilder.update("1.1.2", "Bug fix release. Fixed rescue servlet and cleaned up configuration")
73 .addTask(new ArrayDelegateTask("Removes properties which could never work.",
74 new RemovePropertyTask("", "", "config", "/modules/groovy/dialogs/scriptsEdit/tabText/text", "rows"),
75 new RemovePropertyTask("", "", "config", "/modules/groovy/dialogs/scriptsEdit/tabText/text", "line"))
76 ));
77 register(DeltaBuilder.update("1.2.6", "")
78 .addTask(updateSecurityBaseRole)
79 );
80 }
81
82 @Override
83 protected List<Task> getExtraInstallTasks(InstallContext installContext) {
84 final List<Task> tasks = new ArrayList<Task>();
85 tasks.add(updateSecurityBaseRole);
86 return tasks;
87 }
88 }