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