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.cache.browser.setup;
35
36 import info.magnolia.cache.browser.app.BrowserCacheApp;
37 import info.magnolia.module.DefaultModuleVersionHandler;
38 import info.magnolia.module.InstallContext;
39 import info.magnolia.module.cache.app.CacheApp;
40 import info.magnolia.module.delta.AbstractCondition;
41 import info.magnolia.module.delta.AddURIPermissionTask;
42 import info.magnolia.module.delta.BootstrapSingleResource;
43 import info.magnolia.module.delta.CheckAndModifyPropertyValueTask;
44 import info.magnolia.module.delta.Condition;
45 import info.magnolia.module.delta.DeltaBuilder;
46 import info.magnolia.module.delta.Task;
47 import info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor;
48 import info.magnolia.ui.contentapp.ContentAppDescriptor;
49
50 import java.util.ArrayList;
51 import java.util.List;
52
53
54
55
56 public class CacheBrowserAppModuleVersionHandler extends DefaultModuleVersionHandler {
57
58 public CacheBrowserAppModuleVersionHandler() {
59 register(DeltaBuilder.update("5.5.3", "")
60 .addTask(new BootstrapSingleResource("Bootstrap whitelisted classes", "","/mgnl-bootstrap/cache-browser-app/config.modules.cache-browser-app.config.xml" )));
61 }
62
63 @Override
64 protected List<Task> getExtraInstallTasks(InstallContext installContext) {
65 List<Task> tasks = new ArrayList<>(super.getExtraInstallTasks(installContext));
66 tasks.add(new CheckAndModifyPropertyValueTask("/modules/cache-app/apps/cacheTools", "appClass", CacheApp.class.getName(), BrowserCacheApp.class.getName()));
67 tasks.add(new CheckAndModifyPropertyValueTask("/modules/cache-app/apps/cacheTools", "class", ConfiguredAppDescriptor.class.getName(), ContentAppDescriptor.class.getName()));
68 tasks.add(new AddURIPermissionTask("Add Get&Post permissions", "rest-editor", "/.rest/cache/v1*", AddURIPermissionTask.GET_POST));
69 return tasks;
70 }
71
72 @Override
73 protected List<Condition> getInstallConditions() {
74 List<Condition> conditions = new ArrayList<>();
75 conditions.add(new PublishingOrActivationInstalledCondition());
76 return conditions;
77 }
78
79 private class PublishingOrActivationInstalledCondition extends AbstractCondition {
80
81 public PublishingOrActivationInstalledCondition() {
82 super("Publishing or Activation module is installed condition.", "Cache browser module requires Publishing(recommended) or Activation module installed.");
83 }
84
85 @Override
86 public boolean check(InstallContext installContext) {
87 return installContext.isModuleRegistered("publishing-core") || installContext.isModuleRegistered("activation");
88 }
89 }
90 }