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