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