Skip to content

Commit 5e49c01

Browse files
tlinkowskipaulbakker
authored andcommitted
Fix #80: 3) Limit addOpens to test and run tasks only
1 parent 70fc264 commit 5e49c01

File tree

6 files changed

+56
-27
lines changed

6 files changed

+56
-27
lines changed

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,11 @@ compileJava {
163163

164164
The following options are supported by the `moduleOptions` extension:
165165

166-
* addModules: Maps to `--add-modules`. Value is of type `List<String>`, e.g, `['com.acme.foo']`.
167-
* addReads: Maps to `--add-reads`. Value is of type `Map<String, String>`, e.g, `['module1': 'module2']`.
168-
* addOpens: Maps to `--add-opens`. Value is of type `Map<String, String>`, e.g, `['module1/package': 'module2']`.
169-
* addExports: Maps to `--add-exports`. Value is of type `Map<String, String>`, e.g, `['module1/package': 'module2']`.
166+
* `addModules`: Maps to `--add-modules`. Value is of type `List<String>`, e.g, `['com.acme.foo']`.
167+
* `addReads`: Maps to `--add-reads`. Value is of type `Map<String, String>`, e.g, `['module1': 'module2']`.
168+
* `addExports`: Maps to `--add-exports`. Value is of type `Map<String, String>`, e.g, `['module1/package': 'module2']`.
169+
* `addOpens`: Maps to `--add-opens`. Value is of type `Map<String, String>`, e.g, `['module1/package': 'module2']`
170+
(available only for `test` and `run` tasks).
170171

171172
Note that multiple entries matching the same left hand side may be added to `addReads`, `addOpens`, and `addExports` but
172173
no value accumulation is performed, the last entry overrides the previous one. If you need to combine multiple values then
@@ -183,7 +184,7 @@ compileJava {
183184
}
184185
```
185186

186-
Where as the following block resolves to `--add-reads module1=module2,module3`
187+
Whereas the following block resolves to `--add-reads module1=module2,module3`
187188

188189
```
189190
compileJava {

src/main/java/org/javamodularity/moduleplugin/extensions/ModuleOptions.java

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public abstract class ModuleOptions {
1919
private List<String> addModules = new ArrayList<>();
2020
private Map<String, String> addReads = new LinkedHashMap<>();
2121
private Map<String, String> addExports = new LinkedHashMap<>();
22-
private Map<String, String> addOpens = new LinkedHashMap<>();
2322

2423
protected ModuleOptions(Project project) {
2524
this.project = project;
@@ -49,27 +48,22 @@ public void setAddExports(Map<String, String> addExports) {
4948
this.addExports = addExports;
5049
}
5150

52-
public Map<String, String> getAddOpens() {
53-
return addOpens;
54-
}
55-
56-
public void setAddOpens(Map<String, String> addOpens) {
57-
this.addOpens = addOpens;
58-
}
59-
6051
//region MODULE TASK OPTION
6152
public void mutateArgs(List<String> args) {
62-
buildFullOptionStream().forEach(o -> o.mutateArgs(args));
53+
buildFullOptionStreamLogged().forEach(o -> o.mutateArgs(args));
6354
}
6455

65-
public Stream<TaskOption> buildFullOptionStream() {
56+
public Stream<TaskOption> buildFullOptionStreamLogged() {
6657
LOGGER.debug("Updating module '{}' with...", helper().moduleName());
58+
return buildFullOptionStream().peek(option -> LOGGER.debug(" {} {}", option.getFlag(), option.getValue()));
59+
}
60+
61+
protected Stream<TaskOption> buildFullOptionStream() {
6762
return StreamHelper.concat(
6863
addModulesOption().stream(),
6964
addReadsOptionStream(),
70-
addExportsOptionStream(),
71-
addOpensOptionStream()
72-
).peek(option -> LOGGER.debug(" {} {}", option.getFlag(), option.getValue()));
65+
addExportsOptionStream()
66+
);
7367
}
7468

7569
private Optional<TaskOption> addModulesOption() {
@@ -87,11 +81,7 @@ private Stream<TaskOption> addExportsOptionStream() {
8781
return buildOptionStream("--add-exports", addExports);
8882
}
8983

90-
private Stream<TaskOption> addOpensOptionStream() {
91-
return buildOptionStream("--add-opens", addOpens);
92-
}
93-
94-
private Stream<TaskOption> buildOptionStream(String flag, Map<String, String> map) {
84+
protected final Stream<TaskOption> buildOptionStream(String flag, Map<String, String> map) {
9585
if (map.isEmpty()) {
9686
return Stream.empty();
9787
}

src/main/java/org/javamodularity/moduleplugin/extensions/RunModuleOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.gradle.api.Project;
44

5-
public class RunModuleOptions extends ModuleOptions {
5+
public class RunModuleOptions extends RuntimeModuleOptions {
66

77
public RunModuleOptions(Project project) {
88
super(project);
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.javamodularity.moduleplugin.extensions;
2+
3+
import org.gradle.api.Project;
4+
import org.javamodularity.moduleplugin.internal.TaskOption;
5+
6+
import java.util.LinkedHashMap;
7+
import java.util.Map;
8+
import java.util.stream.Stream;
9+
10+
public abstract class RuntimeModuleOptions extends ModuleOptions {
11+
12+
private Map<String, String> addOpens = new LinkedHashMap<>();
13+
14+
public RuntimeModuleOptions(Project project) {
15+
super(project);
16+
}
17+
18+
public Map<String, String> getAddOpens() {
19+
return addOpens;
20+
}
21+
22+
public void setAddOpens(Map<String, String> addOpens) {
23+
this.addOpens = addOpens;
24+
}
25+
26+
//region OPTION STREAM
27+
protected Stream<TaskOption> buildFullOptionStream() {
28+
return Stream.concat(
29+
super.buildFullOptionStream(),
30+
addOpensOptionStream()
31+
);
32+
}
33+
34+
private Stream<TaskOption> addOpensOptionStream() {
35+
return buildOptionStream("--add-opens", addOpens);
36+
}
37+
//endregion
38+
}

src/main/java/org/javamodularity/moduleplugin/extensions/TestModuleOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.gradle.api.Project;
44

5-
public class TestModuleOptions extends ModuleOptions {
5+
public class TestModuleOptions extends RuntimeModuleOptions {
66

77
private boolean runOnClasspath;
88

src/main/java/org/javamodularity/moduleplugin/tasks/JavadocTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ private void addJavadocOptions(Javadoc javadoc, JavadocModuleOptions moduleOptio
4343
StreamHelper.concat(
4444
patchModuleExtension.buildModulePathOption(classpath).stream(),
4545
patchModuleExtension.resolvePatched(classpath).buildOptionStream(),
46-
moduleOptions.buildFullOptionStream()
46+
moduleOptions.buildFullOptionStreamLogged()
4747
).forEach(option -> option.mutateOptions(options));
4848
}
4949

0 commit comments

Comments
 (0)