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