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.virtualuri.setup.delta;
35
36 import info.magnolia.module.delta.ArrayDelegateTask;
37 import info.magnolia.module.delta.NodeExistsDelegateTask;
38 import info.magnolia.module.delta.RenameNodeTask;
39 import info.magnolia.repository.RepositoryConstants;
40 import info.magnolia.virtualuri.VirtualUriMapping;
41
42 import java.util.Map;
43
44
45
46
47
48
49
50
51
52 public class VirtualUriMappingUpdateTask extends NodeExistsDelegateTask {
53
54 static final String OLD_MAPPING_DIRECTORY = "virtualURIMapping";
55 static final String NEW_MAPPING_DIRECTORY = "virtualUriMappings";
56
57 public VirtualUriMappingUpdateTask(String name, String module, Map<String, Class<? extends VirtualUriMapping>> additionalMappingClasses) {
58 super(name, "/modules/" + module + "/" + OLD_MAPPING_DIRECTORY, createMappingArrayTask(module, additionalMappingClasses));
59 }
60
61 private static ArrayDelegateTask createMappingArrayTask(String module, Map<String, Class<? extends VirtualUriMapping>> additionalMappingClasses) {
62 String modulePath = "/modules/" + module;
63 ArrayDelegateTask mappingArrayTask = new ArrayDelegateTask("Task to update VirtualUriMapping for module" + module);
64 mappingArrayTask.addTask(new RenameNodeTask(String.format("Rename node name %s to %s", OLD_MAPPING_DIRECTORY, NEW_MAPPING_DIRECTORY), RepositoryConstants.CONFIG, modulePath, OLD_MAPPING_DIRECTORY, NEW_MAPPING_DIRECTORY, true));
65 mappingArrayTask.addTask(new UpdateMappingClassesAndPropertiesTask(String.format("Update VirtualUriMapping configurations of module %s", module), modulePath + "/" + NEW_MAPPING_DIRECTORY, additionalMappingClasses));
66 return mappingArrayTask;
67 }
68 }