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.delta;
35
36 import info.magnolia.cms.util.ClasspathResourcesUtil;
37 import info.magnolia.importexport.BootstrapUtil;
38 import info.magnolia.module.InstallContext;
39
40 import java.io.IOException;
41
42 import javax.jcr.ImportUUIDBehavior;
43 import javax.jcr.RepositoryException;
44
45
46
47
48 public abstract class BootstrapResourcesTask extends AbstractTask {
49 private final int importUUIDBehavior;
50
51 public BootstrapResourcesTask() {
52 this("Bootstrap module resources", "Bootstraps module resources", ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW);
53 }
54
55 public BootstrapResourcesTask(int importUUIDBehavior) {
56 this("Bootstrap module resources", "Bootstraps module resources", importUUIDBehavior);
57 }
58
59 public BootstrapResourcesTask(String name, String description) {
60 this(name, description, ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW);
61 }
62
63 public BootstrapResourcesTask(String name, String description, int importUUIDBehavior) {
64 super(name, description);
65 this.importUUIDBehavior = importUUIDBehavior;
66 }
67
68
69 @Override
70 public void execute(final InstallContext installContext) throws TaskExecutionException {
71 try {
72 final String[] resourcesToBootstrap = getResourcesToBootstrap(installContext);
73 BootstrapUtil.bootstrap(resourcesToBootstrap, importUUIDBehavior);
74 } catch (IOException e) {
75 throw new TaskExecutionException("Could not bootstrap: " + e.getMessage(), e);
76 } catch (RepositoryException e) {
77 throw new TaskExecutionException("Could not bootstrap: " + e.getMessage(), e);
78 }
79 }
80
81
82
83
84 protected String[] getResourcesToBootstrap(final InstallContext installContext) {
85 String[] resourcesToBootstrap = ClasspathResourcesUtil.findResources(new ClasspathResourcesUtil.Filter() {
86 @Override
87 public boolean accept(final String name) {
88 return acceptResource(installContext, name);
89 }
90 });
91 return resourcesToBootstrap;
92
93 }
94
95
96
97
98 protected boolean acceptResource(final InstallContext installContext, final String resourceName) {
99 return false;
100 }
101 }