HelloCorda/buildSrc/build/groovy-dsl-plugins/output/adapter-src/CsdePlugin.java

44 lines
2.2 KiB
Java
Raw Normal View History

2023-01-27 17:24:53 +01:00
//CHECKSTYLE:OFF
import org.gradle.util.GradleVersion;
import org.gradle.groovy.scripts.BasicScript;
import org.gradle.groovy.scripts.ScriptSource;
import org.gradle.groovy.scripts.TextResourceScriptSource;
import org.gradle.internal.resource.StringTextResource;
/**
* Precompiled csde script plugin.
**/
public class CsdePlugin implements org.gradle.api.Plugin<org.gradle.api.internal.project.ProjectInternal> {
private static final String MIN_SUPPORTED_GRADLE_VERSION = "5.0";
public void apply(org.gradle.api.internal.project.ProjectInternal target) {
assertSupportedByCurrentGradleVersion();
try {
Class<? extends BasicScript> pluginsBlockClass = Class.forName("cp_precompiled_Csde").asSubclass(BasicScript.class);
BasicScript pluginsBlockScript = pluginsBlockClass.getDeclaredConstructor().newInstance();
pluginsBlockScript.setScriptSource(scriptSource(pluginsBlockClass));
pluginsBlockScript.init(target, target.getServices());
pluginsBlockScript.run();
target.getPluginManager().apply("java-library");
target.getPluginManager().apply("groovy");
target.getPluginManager().apply("java");
Class<? extends BasicScript> precompiledScriptClass = Class.forName("precompiled_Csde").asSubclass(BasicScript.class);
BasicScript script = precompiledScriptClass.getDeclaredConstructor().newInstance();
script.setScriptSource(scriptSource(precompiledScriptClass));
script.init(target, target.getServices());
script.run();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static ScriptSource scriptSource(Class<?> scriptClass) {
return new TextResourceScriptSource(new StringTextResource(scriptClass.getSimpleName(), ""));
}
private static void assertSupportedByCurrentGradleVersion() {
if (GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version(MIN_SUPPORTED_GRADLE_VERSION)) < 0) {
throw new RuntimeException("Precompiled Groovy script plugins require Gradle "+MIN_SUPPORTED_GRADLE_VERSION+" or higher");
}
}
}
//CHECKSTYLE:ON