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
40 import java.util.Date;
41 import java.util.List;
42 import java.util.Map;
43
44 import javax.jcr.RepositoryException;
45 import javax.jcr.Session;
46
47 import org.apache.commons.lang3.exception.ExceptionUtils;
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 Session getJCRSession(String workspaceName) throws RepositoryException;
97
98 Session getConfigJCRSession() throws RepositoryException;
99
100
101
102
103 public static final class Message {
104 private final Date timestamp;
105 private final String message;
106 private final String details;
107 private final MessagePriority priority;
108
109 public Message(MessagePriority priority, String message) {
110 this(priority, message, (String) null);
111 }
112
113 public Message(MessagePriority priority, String message, Throwable th) {
114 this(priority, message, th != null ? ExceptionUtils.getStackTrace(th) : null);
115 }
116
117 public Message(MessagePriority priority, String message, String details) {
118 this.timestamp = new Date();
119 this.priority = priority;
120 this.message = message;
121 this.details = details;
122 }
123
124 public Date getTimestamp() {
125 return timestamp;
126 }
127
128 public String getMessage() {
129 return message;
130 }
131
132 public String getDetails() {
133 return details;
134 }
135
136 public MessagePriority getPriority() {
137 return priority;
138 }
139 }
140
141
142
143
144 public enum MessagePriority {
145 info, warning, error, restartNeeded
146 }
147 }