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.samples.setup;
35
36 import info.magnolia.cms.beans.config.ContentRepository;
37 import info.magnolia.module.DefaultModuleVersionHandler;
38 import info.magnolia.module.InstallContext;
39 import info.magnolia.module.admininterface.setup.AddMainMenuItemTask;
40 import info.magnolia.module.admininterface.setup.AddSubMenuItemTask;
41 import info.magnolia.module.admininterface.setup.SetDefaultPublicURI;
42 import info.magnolia.module.delta.BackupTask;
43 import info.magnolia.module.delta.BootstrapConditionally;
44 import info.magnolia.module.delta.BootstrapResourcesTask;
45 import info.magnolia.module.delta.BootstrapSingleResource;
46 import info.magnolia.module.delta.DeltaBuilder;
47 import info.magnolia.module.delta.FilterOrderingTask;
48 import info.magnolia.module.delta.NodeExistsDelegateTask;
49 import info.magnolia.module.delta.RegisterModuleServletsTask;
50 import info.magnolia.module.delta.RemoveNodeTask;
51
52 import java.util.ArrayList;
53 import java.util.List;
54
55
56
57
58
59
60
61
62
63
64 public class SamplesVersionHandler extends DefaultModuleVersionHandler {
65 private static final String I18N_BASENAME = "info.magnolia.module.samples.messages";
66
67
68
69
70
71 public SamplesVersionHandler() {
72 register(DeltaBuilder.update("4.0", "New samples module, replaces the old one.")
73 .addTask(new NodeExistsDelegateTask("Backup samples config", "Creates a backup", "config",
74 "/modules/samples", new BackupTask("config", "/modules/samples", true)))
75 .addTask(new NodeExistsDelegateTask("Backup samples website samples", "Creates a backup", "website",
76 "/help", new BackupTask("website", "/help", true)))
77 .addTask(new NodeExistsDelegateTask("Backup samples website samples", "Creates a backup", "website",
78 "/mailform", new BackupTask("website", "/mailform", true)))
79 .addTask(new NodeExistsDelegateTask("Backup samples website samples", "Creates a backup", "website",
80 "/mails", new BackupTask("website", "/mails", true)))
81 .addTask(new BootstrapResourcesTask("New configuration", "Bootstraps new default samples configuration.") {
82 protected String[] getResourcesToBootstrap(final InstallContext installContext) {
83 return new String[]{
84 "/mgnl-bootstrap/samples/config.modules.samples.dialogs.controlsShowRoom.xml",
85 "/mgnl-bootstrap/samples/config.modules.samples.dialogs.howTo.xml",
86 "/mgnl-bootstrap/samples/config.modules.samples.dialogs.mainProperties.xml",
87 "/mgnl-bootstrap/samples/config.modules.samples.paragraphs.samplesControlsShowRoom.xml",
88 "/mgnl-bootstrap/samples/config.modules.samples.paragraphs.samplesHowToFTL.xml",
89 "/mgnl-bootstrap/samples/config.modules.samples.paragraphs.samplesHowToJSP.xml",
90 "/mgnl-bootstrap/samples/config.modules.samples.paragraphs.samplesSearchResult.xml",
91 "/mgnl-bootstrap/samples/config.modules.samples.templates.samplesMainFTL.xml",
92 "/mgnl-bootstrap/samples/config.modules.samples.templates.samplesMainJSP.xml",
93 "/mgnl-bootstrap/samples/config.modules.samples.templates.samplesVirtualURI.xml",
94 "/mgnl-bootstrap/samples/config.server.filters.sample.xml",
95 };
96 }
97 })
98 .addTask(new BootstrapSingleResource("Sample VirtualUri", "Adds a sample",
99 "/mgnl-bootstrap-samples/samples/config.modules.samples.virtualURIMapping.xml"))
100 .addTask(new BootstrapSingleResource("Sample how to freemarker", "Adds a sample",
101 "/mgnl-bootstrap-samples/samples/website.howTo-freemarker.xml"))
102 .addTask(new BootstrapSingleResource("Sample how to jsp", "Adds a sample",
103 "/mgnl-bootstrap-samples/samples/website.howTo-jsp.xml"))
104 .addTask(new BootstrapSingleResource("Sample of search result", "Adds a sample",
105 "/mgnl-bootstrap-samples/samples/website.searchResult-jsp.xml"))
106 .addTask(new BootstrapSingleResource("Sample using wirtual uri", "Adds a sample",
107 "/mgnl-bootstrap-samples/samples/website.products-freemarker.xml"))
108 .addTask(new BootstrapConditionally("Samples developers", "Adds developers group if does not exist",
109 "/mgnl-bootstrap-samples/samples/usergroups.developers.xml"))
110 .addTask(new BootstrapConditionally("Samples employees", "Adds employees group if does not exist",
111 "/mgnl-bootstrap-samples/samples/usergroups.employees.xml"))
112 .addTask(new BootstrapConditionally("Samples editor", "Adds editor role if does not exist",
113 "/mgnl-bootstrap-samples/samples/userroles.editor.xml"))
114 .addTask(new BootstrapConditionally("Samples user", "Adds user if does not exist",
115 "/mgnl-bootstrap-samples/samples/users.admin.david.xml"))
116 .addTask(new BootstrapConditionally("Samples user", "Adds user if does not exist",
117 "/mgnl-bootstrap-samples/samples/users.admin.eve.xml"))
118 .addTask(new BootstrapConditionally("Samples user", "Adds user if does not exist",
119 "/mgnl-bootstrap-samples/samples/users.admin.patrick.xml"))
120 .addTask(new RemoveNodeTask("Remove menu items", "Removes the samples menu config item sample templates.",
121 ContentRepository.CONFIG, "/modules/adminInterface/config/menu/config/sample-templates"))
122 .addTask(new RemoveNodeTask("Remove menu items", "Removes the samples menu config item sample paragraphs.",
123 ContentRepository.CONFIG, "/modules/adminInterface/config/menu/config/sample-paragraphs"))
124 .addTask(new RemoveNodeTask("Remove menu items", "Removes the samples menu config item sample dialogs.",
125 ContentRepository.CONFIG, "/modules/adminInterface/config/menu/config/sample-dialogs"))
126
127 .addTask(new RegisterModuleServletsTask())
128 .addTasks(getCommonTasks())
129 );
130 }
131
132
133
134
135
136
137
138
139
140 protected List getCommonTasks() {
141 final List commonTasks = new ArrayList();
142
143 commonTasks.add(new AddMainMenuItemTask("samples", "samples.menu.label", I18N_BASENAME, "", "/.resources/icons/24/compass.gif", "security"));
144
145 commonTasks.add(submenu("config", "/modules/samples"));
146 commonTasks.add(submenu("filter", "/server/filters/sample"));
147 commonTasks.add(submenu("servlet", "/server/filters/servlets/DisplaySamplesSourcesServlet"));
148
149 commonTasks.add(new FilterOrderingTask("sample", new String[]{"servlets"}));
150
151 commonTasks.add(new SetDefaultPublicURI("defaultPublicURI"));
152
153 return commonTasks;
154 }
155
156 private AddSubMenuItemTask submenu(String name, String path) {
157 return new AddSubMenuItemTask("samples", name, "samples." + name + ".menu.label", I18N_BASENAME, "MgnlAdminCentral.showTree('config', '" + path + "')", "/.resources/icons/16/gears.gif");
158 }
159
160
161
162
163
164 protected List getExtraInstallTasks(InstallContext installContext) {
165 return getCommonTasks();
166 }
167
168 }