Skip to content

Commit

Permalink
Fix decoration of DependencyHandler and RepositoryHandler
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Lacasse <daniel@lacasse.io>
  • Loading branch information
lacasseio committed Jul 10, 2024
1 parent 2bf1828 commit 0e39338
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ public ProjectDependenciesExtensionRule() {}
@Override
public void apply(Project project) {
final DependencyHandler dependencies = project.getDependencies();
final GradlePluginDevelopmentDependencyExtension extension = dependencies.getExtensions().create("gradlePluginDevelopment", DefaultGradlePluginDevelopmentDependencyExtension.class, dependencies);
final GradlePluginDevelopmentDependencyExtension extension = new DefaultGradlePluginDevelopmentDependencyExtension(dependencies);
dependencies.getExtensions().add("gradlePluginDevelopment", extension);

GroovyHelper.instance().addNewInstanceMethod(dependencies, "gradleApi", new MethodClosure(extension, "gradleApi"));
GroovyHelper.instance().addNewInstanceMethod(dependencies, "gradleTestKit", new MethodClosure(extension, "gradleTestKit"));
Expand All @@ -36,7 +37,7 @@ public void apply(Project project) {
GroovyHelper.instance().addNewInstanceMethod(dependencies, "gradlePlugin", new MethodClosure(extension, "gradlePlugin"));
}

/*private*/ static abstract /*final*/ class DefaultGradlePluginDevelopmentDependencyExtension implements GradlePluginDevelopmentDependencyExtension, HasPublicType {
private static final class DefaultGradlePluginDevelopmentDependencyExtension implements GradlePluginDevelopmentDependencyExtension, HasPublicType {
private final DependencyFactory factory;
private final Transformer<Dependency, String> gradleApiTransformer;
private final Transformer<Dependency, String> gradleTestKitTransformer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import dev.gradleplugins.GradlePluginDevelopmentRepositoryExtension;
import dev.gradleplugins.internal.runtime.dsl.GroovyHelper;
import dev.gradleplugins.internal.util.ClosureWrappedConfigureAction;
import groovy.lang.Closure;
import groovy.lang.DelegatesTo;
import org.codehaus.groovy.runtime.MethodClosure;
import org.gradle.api.Action;
import org.gradle.api.Plugin;
Expand Down Expand Up @@ -54,12 +57,13 @@ public void apply(Settings settings) {
}

private static void decorate(RepositoryHandler repositories) {
final GradlePluginDevelopmentRepositoryExtension extension = ((ExtensionAware) repositories).getExtensions().create("gradlePluginDevelopment", DefaultGradlePluginDevelopmentRepositoryExtension.class, repositories);
final GradlePluginDevelopmentRepositoryExtension extension = new DefaultGradlePluginDevelopmentRepositoryExtension(repositories);
((ExtensionAware) repositories).getExtensions().add("gradlePluginDevelopment", extension);

GroovyHelper.instance().addNewInstanceMethod(repositories, "gradlePluginDevelopment", new MethodClosure(extension, "gradlePluginDevelopment"));
}

/*private*/ static abstract /*final*/ class DefaultGradlePluginDevelopmentRepositoryExtension implements GradlePluginDevelopmentRepositoryExtension, HasPublicType {
private static final class DefaultGradlePluginDevelopmentRepositoryExtension implements GradlePluginDevelopmentRepositoryExtension, HasPublicType {
private final RepositoryHandler repositories;

@Inject
Expand Down Expand Up @@ -89,6 +93,10 @@ public MavenArtifactRepository gradlePluginDevelopment(Action<? super MavenArtif
});
}

public MavenArtifactRepository gradlePluginDevelopment(@DelegatesTo(MavenArtifactRepository.class) @SuppressWarnings("rawtypes") Closure action) {
return gradlePluginDevelopment(new ClosureWrappedConfigureAction<>(action));
}

@Override
public TypeOf<?> getPublicType() {
return TypeOf.typeOf(GradlePluginDevelopmentRepositoryExtension.class);
Expand Down

0 comments on commit 0e39338

Please sign in to comment.