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;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.core.HierarchyManager;
38 import info.magnolia.module.model.ModuleDefinition;
39 import org.apache.commons.lang.exception.ExceptionUtils;
40
41 import javax.jcr.RepositoryException;
42 import java.util.Date;
43 import java.util.List;
44 import java.util.Map;
45
46
47
48
49
50
51
52
53 public interface InstallContext {
54
55 void info(String message);
56
57 void warn(String message);
58
59 void error(String message, Throwable th);
60
61 void restartNeeded(String message);
62
63 int getExecutedTaskCount();
64
65 int getTotalTaskCount();
66
67 InstallStatus getStatus();
68
69
70
71
72 Map<String, List<Message>> getMessages();
73
74 HierarchyManager getHierarchyManager(String workspace);
75
76 HierarchyManager getConfigHierarchyManager();
77
78 boolean hasModulesNode();
79
80
81
82
83 Content getModulesNode() throws RepositoryException;
84
85 Content getOrCreateCurrentModuleNode() throws RepositoryException;
86
87 Content getOrCreateCurrentModuleConfigNode() throws RepositoryException;
88
89
90
91
92 ModuleDefinition getCurrentModuleDefinition();
93
94 boolean isModuleRegistered(String moduleName);
95
96
97
98
99 public static final class Message {
100 private final Date timestamp;
101 private final String message;
102 private final String details;
103 private final MessagePriority priority;
104
105 public Message(MessagePriority priority, String message) {
106 this(priority, message, (String) null);
107 }
108
109 public Message(MessagePriority priority, String message, Throwable th) {
110 this(priority, message, th != null ? ExceptionUtils.getStackTrace(th) : null);
111 }
112
113 public Message(MessagePriority priority, String message, String details) {
114 this.timestamp = new Date();
115 this.priority = priority;
116 this.message = message;
117 this.details = details;
118 }
119
120 public Date getTimestamp() {
121 return timestamp;
122 }
123
124 public String getMessage() {
125 return message;
126 }
127
128 public String getDetails() {
129 return details;
130 }
131
132 public MessagePriority getPriority() {
133 return priority;
134 }
135 }
136
137
138
139
140 public enum MessagePriority {
141 info, warning, error, restartNeeded
142 }
143 }