瀏覽代碼

Migrate VersionsResourceTasks groovy->java

Issue: gh-4939
Lars Grefer 6 年之前
父節點
當前提交
09a119978c

+ 0 - 49
buildSrc/src/main/groovy/versions/VersionsResourceTasks.groovy

@@ -1,49 +0,0 @@
-/*
- * Copyright 2002-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package versions
-
-import org.gradle.api.DefaultTask
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.OutputFile
-import org.gradle.api.tasks.TaskAction
-
-/**
- * @author Rob Winch
- */
-class VersionsResourceTasks extends DefaultTask {
-	@OutputFile
-	File versionsFile;
-
-	@Input
-	Closure<Map<String,String>> versions;
-
-	void setVersions(Map<String,String> versions) {
-		this.versions = { versions };
-	}
-
-	void setVersions(Closure<Map<String,String>> versions) {
-		this.versions = versions
-	}
-
-	@TaskAction
-	void generateVersions() {
-		versionsFile.parentFile.mkdirs()
-		versionsFile.createNewFile()
-		Properties versionsProperties = new Properties()
-		versionsProperties.putAll(versions.call())
-		versionsProperties.store(versionsFile.newWriter(), null)
-	}
-}

+ 49 - 0
buildSrc/src/main/java/versions/VersionsResourceTasks.java

@@ -0,0 +1,49 @@
+package versions;
+
+import org.codehaus.groovy.runtime.ResourceGroovyMethods;
+import org.gradle.api.DefaultTask;
+import org.gradle.api.file.RegularFileProperty;
+import org.gradle.api.provider.MapProperty;
+import org.gradle.api.tasks.Input;
+import org.gradle.api.tasks.OutputFile;
+import org.gradle.api.tasks.TaskAction;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Properties;
+
+public class VersionsResourceTasks extends DefaultTask {
+
+	private final RegularFileProperty versionsFile = getProject().getObjects().fileProperty();
+
+	private final MapProperty<String, String> versions = getProject().getObjects().mapProperty(String.class, String.class);
+
+	@OutputFile
+	public RegularFileProperty getVersionsFile() {
+		return versionsFile;
+	}
+
+	@Input
+	public MapProperty<String, String> getVersions() {
+		return versions;
+	}
+
+	@TaskAction
+	void generateVersions() throws IOException {
+
+		File file = versionsFile.getAsFile().get();
+		File parentFile = versionsFile.getAsFile().get().getParentFile();
+
+		if (parentFile.isDirectory() || parentFile.mkdirs()) {
+			Properties properties = new Properties();
+			properties.putAll(getVersions().get());
+			try (Writer writer = ResourceGroovyMethods.newWriter(file)) {
+				properties.store(writer, null);
+			}
+		}
+		else {
+			throw new IOException(parentFile + " does not exist and cannot be created");
+		}
+	}
+}

+ 1 - 1
core/spring-security-core.gradle

@@ -36,7 +36,7 @@ dependencies {
 
 task springVersion(type: versions.VersionsResourceTasks) {
 	versionsFile = file("${buildDir}/versions/spring-security.versions")
-	versions = { project.dependencyManagement.managedVersions }
+	versions = provider { project.dependencyManagement.managedVersions }
 }
 
 tasks.processResources {