1 package org.apache.maven.plugins.jlink;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.MojoExecutionException;
23 import org.apache.maven.plugin.logging.Log;
24
25 import java.io.File;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.List;
29 import java.util.Optional;
30
31 abstract class AbstractJLinkExecutor
32 {
33 protected static final String JMODS = "jmods";
34
35 private final Log log;
36
37 private final List<String> modulesToAdd = new ArrayList<>();
38 private final List<String> modulePaths = new ArrayList<>();
39
40 AbstractJLinkExecutor( Log log )
41 {
42 this.log = log;
43 }
44
45 protected Log getLog()
46 {
47 return this.log;
48 }
49
50 public abstract Optional<File> getJmodsFolder( File sourceJdkModules );
51
52 public abstract int executeJlink( List<String> jlinkArgs ) throws MojoExecutionException;
53
54 public void addAllModules( Collection<String> modulesToAdd )
55 {
56 this.modulesToAdd.addAll( modulesToAdd );
57 }
58
59 public void addAllModulePaths( Collection<String> pathsOfModules )
60 {
61 this.modulePaths.addAll( pathsOfModules );
62 }
63 }