Skip to content

Commit 8375f35

Browse files
committed
Add access to defined 'requires' for testing plugin
1 parent f248bc7 commit 8375f35

File tree

5 files changed

+92
-2
lines changed

5 files changed

+92
-2
lines changed

src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import org.gradlex.javamodule.dependencies.dsl.GradleOnlyDirectives;
3535
import org.gradlex.javamodule.dependencies.internal.bridges.DependencyAnalysisBridge;
3636
import org.gradlex.javamodule.dependencies.internal.bridges.ExtraJavaModuleInfoBridge;
37+
import org.gradlex.javamodule.dependencies.internal.dsl.AllDirectivesInternal;
38+
import org.gradlex.javamodule.dependencies.internal.dsl.GradleOnlyDirectivesInternal;
3739
import org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo;
3840
import org.gradlex.javamodule.dependencies.tasks.ModuleDependencyReport;
3941
import org.gradlex.javamodule.dependencies.tasks.ModuleDirectivesOrderingCheck;
@@ -119,9 +121,9 @@ private void setupDirectivesDSL(Project project, JavaModuleDependenciesExtension
119121
File moduleInfoFile = new File(sourceSet.getJava().getSrcDirs().iterator().next(), "module-info.java");
120122
String extensionName = sourceSet.getName() + "ModuleInfo";
121123
if (moduleInfoFile.exists()) {
122-
extensions.create(extensionName, GradleOnlyDirectives.class, sourceSet, mainSourceSet, javaModuleDependencies);
124+
extensions.create(GradleOnlyDirectives.class, extensionName, GradleOnlyDirectivesInternal.class, sourceSet, mainSourceSet, javaModuleDependencies);
123125
} else {
124-
extensions.create(extensionName, AllDirectives.class, sourceSet, mainSourceSet, javaModuleDependencies);
126+
extensions.create(AllDirectives.class, extensionName, AllDirectivesInternal.class, sourceSet, mainSourceSet, javaModuleDependencies);
125127
}
126128
});
127129
}

src/main/java/org/gradlex/javamodule/dependencies/dsl/AllDirectives.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,24 @@ public AllDirectives(SourceSet sourceSet, SourceSet mainSourceSet, JavaModuleDep
2626
}
2727

2828
public void requires(String moduleName) {
29+
runtimeClasspathModules.add(moduleName);
30+
compileClasspathModules.add(moduleName);
2931
add(sourceSet.getImplementationConfigurationName(), moduleName);
3032
}
3133

3234
public void requiresTransitive(String moduleName) {
35+
runtimeClasspathModules.add(moduleName);
36+
compileClasspathModules.add(moduleName);
3337
add(sourceSet.getApiConfigurationName(), moduleName);
3438
}
3539

3640
public void requiresStatic(String moduleName) {
41+
compileClasspathModules.add(moduleName);
3742
add(sourceSet.getCompileOnlyConfigurationName(), moduleName);
3843
}
3944

4045
public void requiresStaticTransitive(String moduleName) {
46+
compileClasspathModules.add(moduleName);
4147
add(sourceSet.getCompileOnlyApiConfigurationName(), moduleName);
4248
}
4349
}

src/main/java/org/gradlex/javamodule/dependencies/dsl/GradleOnlyDirectives.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,18 @@
2121
import org.gradlex.javamodule.dependencies.JavaModuleDependenciesExtension;
2222

2323
import javax.inject.Inject;
24+
import java.util.ArrayList;
25+
import java.util.List;
2426

2527
public abstract class GradleOnlyDirectives {
2628

2729
protected final SourceSet sourceSet;
2830
protected final SourceSet mainSourceSet;
2931
protected final JavaModuleDependenciesExtension javaModuleDependencies;
3032

33+
protected final List<String> compileClasspathModules = new ArrayList<>();
34+
protected final List<String> runtimeClasspathModules = new ArrayList<>();
35+
3136
@Inject
3237
protected abstract DependencyHandler getDependencies();
3338

@@ -42,6 +47,7 @@ protected void add(String scope, String moduleName) {
4247
}
4348

4449
public void runtimeOnly(String moduleName) {
50+
runtimeClasspathModules.add(moduleName);
4551
add(sourceSet.getRuntimeOnlyConfigurationName(), moduleName);
4652
}
4753

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright the GradleX team.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.gradlex.javamodule.dependencies.internal.dsl;
18+
19+
import org.gradle.api.tasks.SourceSet;
20+
import org.gradlex.javamodule.dependencies.JavaModuleDependenciesExtension;
21+
import org.gradlex.javamodule.dependencies.dsl.AllDirectives;
22+
23+
import java.util.List;
24+
25+
abstract public class AllDirectivesInternal extends AllDirectives {
26+
27+
public AllDirectivesInternal(SourceSet sourceSet, SourceSet mainSourceSet, JavaModuleDependenciesExtension javaModuleDependencies) {
28+
super(sourceSet, mainSourceSet, javaModuleDependencies);
29+
}
30+
31+
public List<String> getCompileClasspathModules() {
32+
return compileClasspathModules;
33+
}
34+
35+
public List<String> getRuntimeClasspathModules() {
36+
return runtimeClasspathModules;
37+
}
38+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright the GradleX team.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.gradlex.javamodule.dependencies.internal.dsl;
18+
19+
import org.gradle.api.tasks.SourceSet;
20+
import org.gradlex.javamodule.dependencies.JavaModuleDependenciesExtension;
21+
import org.gradlex.javamodule.dependencies.dsl.GradleOnlyDirectives;
22+
23+
import java.util.List;
24+
25+
public abstract class GradleOnlyDirectivesInternal extends GradleOnlyDirectives {
26+
27+
public GradleOnlyDirectivesInternal(SourceSet sourceSet, SourceSet mainSourceSet, JavaModuleDependenciesExtension javaModuleDependencies) {
28+
super(sourceSet, mainSourceSet, javaModuleDependencies);
29+
}
30+
31+
public List<String> getCompileClasspathModules() {
32+
return compileClasspathModules;
33+
}
34+
35+
public List<String> getRuntimeClasspathModules() {
36+
return runtimeClasspathModules;
37+
}
38+
}

0 commit comments

Comments
 (0)