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.admininterface.setup.for4_4;
35
36 import java.io.ByteArrayInputStream;
37
38 import javax.jcr.RepositoryException;
39
40 import info.magnolia.cms.beans.config.ContentRepository;
41 import info.magnolia.cms.core.HierarchyManager;
42 import info.magnolia.module.InstallContext;
43 import info.magnolia.module.delta.AbstractTask;
44 import info.magnolia.module.delta.TaskExecutionException;
45 import info.magnolia.repository.Provider;
46
47
48
49
50
51
52 public class RegisterMgnlDeletedType extends AbstractTask {
53
54 public RegisterMgnlDeletedType() {
55 super("Register mgnl:deleted", "Register additional mixin mgnl:deleted.");
56 }
57
58 public void execute(InstallContext ctx) throws TaskExecutionException {
59 HierarchyManager webHM = ctx.getHierarchyManager(ContentRepository.WEBSITE);
60 final String mixDeleted = "mgnl:deleted";
61
62 try {
63 webHM.getWorkspace().getNodeTypeManager().getNodeType(mixDeleted);
64
65 return;
66 } catch (RepositoryException e) {
67
68
69 }
70
71 Provider repoProvider = ContentRepository.getRepositoryProvider(ContentRepository.WEBSITE);
72 String mgnlMixDeleted = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<nodeTypes" + " xmlns:rep=\"internal\""
73 + " xmlns:nt=\"http://www.jcp.org/jcr/nt/1.0\"" + " xmlns:mix=\"http://www.jcp.org/jcr/mix/1.0\""
74 + " xmlns:mgnl=\"http://www.magnolia.info/jcr/mgnl\"" + " xmlns:jcr=\"http://www.jcp.org/jcr/1.0\">" + "<nodeType name=\"" + mixDeleted
75 + "\" isMixin=\"true\" hasOrderableChildNodes=\"true\" primaryItemName=\"\">" + "<supertypes>" + "<supertype>nt:base</supertype>"
76 + "</supertypes>" + "</nodeType>" + "</nodeTypes>";
77
78 try {
79 repoProvider.registerNodeTypes(new ByteArrayInputStream(mgnlMixDeleted.getBytes()));
80 } catch (RepositoryException e) {
81 ctx.error("Failed to register mgnl:mixDeleted mixin. Please update node type definition manually before proceeding", e);
82 }
83
84 }
85 }