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.setup.initial;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.util.NodeDataUtil;
38 import info.magnolia.module.InstallContext;
39 import info.magnolia.module.delta.ArrayDelegateTask;
40 import info.magnolia.module.delta.MoveNodeTask;
41 import info.magnolia.module.delta.TaskExecutionException;
42 import info.magnolia.repository.RepositoryConstants;
43
44 import javax.jcr.RepositoryException;
45
46
47
48
49
50
51
52 public class UpdateURI2RepositoryMappings extends info.magnolia.module.delta.AllChildrenNodesOperation {
53
54 private static final String SERVER_URI2REPOSITORY_MAPPING = "/server/URI2RepositoryMapping";
55 private final ArrayDelegateTask subTasks;
56
57 public UpdateURI2RepositoryMappings() {
58 super("Update URI2Repository mappings", "The structure of the URI2Repository mappings have changed in 3.5", RepositoryConstants.CONFIG, SERVER_URI2REPOSITORY_MAPPING);
59 subTasks = new ArrayDelegateTask("Move URI2Repository mapping nodes");
60 }
61
62
63
64
65 @Override
66 protected void doExecute(InstallContext ctx) throws RepositoryException, TaskExecutionException {
67 final Content parentNode = getParentNode(ctx);
68
69 super.doExecute(ctx);
70
71 parentNode.createContent("mappings");
72 NodeDataUtil.getOrCreate(parentNode, "class").setValue(info.magnolia.cms.beans.config.URI2RepositoryManager.class.getName());
73
74 subTasks.execute(ctx);
75 }
76
77
78
79
80 @Override
81 protected void operateOnChildNode(Content node, InstallContext ctx) throws RepositoryException, TaskExecutionException {
82 final String oldHandle = node.getHandle();
83 final String newHandle = SERVER_URI2REPOSITORY_MAPPING + "/mappings/" + node.getName();
84 subTasks.addTask(new MoveNodeTask("Move " + oldHandle + " to " + newHandle + "", "Moves the " + oldHandle + " node to its new location", RepositoryConstants.CONFIG, oldHandle, newHandle, true));
85 }
86
87 }