Skip to content

Commit 12e5da8

Browse files
authored
Use list of files instead of string (#716)
* fix some issues * use input files
1 parent a068380 commit 12e5da8

File tree

3 files changed

+19
-21
lines changed

3 files changed

+19
-21
lines changed

buildSrc/src/main/groovy/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,8 @@
2424
import com.google.firebase.gradle.plugins.apiinfo.GetMetalavaJarTask;
2525
import com.google.firebase.gradle.plugins.ci.device.FirebaseTestServer;
2626

27-
import java.io.IOException;
28-
import java.nio.file.Files;
29-
import java.util.Collection;
30-
import org.codehaus.groovy.util.ReleaseInfo;
3127
import org.gradle.api.Plugin;
3228
import org.gradle.api.Project;
33-
import org.gradle.api.artifacts.Configuration;
34-
import org.gradle.api.attributes.Attribute;
35-
import org.gradle.api.file.FileCollection;
3629
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile;
3730
import java.io.File;
3831
import java.nio.file.Paths;
@@ -99,9 +92,7 @@ private static void setupApiInformationAnalysis(Project project, LibraryExtensio
9992
"apiinfo",
10093
project.getPath().substring(1).replace(":", "_")));
10194
File outputApiFile = new File(outputFile.getAbsolutePath() + "_api.txt");
102-
String sourcePathArgument = mainSourceSet.getJava().getSrcDirs().stream()
103-
.map(File::getAbsolutePath)
104-
.collect(Collectors.joining(":"));
95+
List<File> sourcePath = mainSourceSet.getJava().getSrcDirs().stream().collect(Collectors.toList());
10596
if(mainSourceSet.getJava().getSrcDirs().stream().noneMatch(File::exists)) {
10697
return;
10798
}
@@ -111,7 +102,7 @@ private static void setupApiInformationAnalysis(Project project, LibraryExtensio
111102
project.getTasks().register("apiInformation", ApiInformationTask.class, task -> {
112103
task.setApiTxt(project.file("api.txt"));
113104
task.setMetalavaJarPath(metalavaOutputJarFile.getAbsolutePath());
114-
task.setSourcePath(sourcePathArgument);
105+
task.setSourcePath(sourcePath);
115106
task.setOutputFile(outputFile);
116107
task.setBaselineFile(project.file("baseline.txt"));
117108
task.setOutputApiFile(outputApiFile);
@@ -126,7 +117,7 @@ private static void setupApiInformationAnalysis(Project project, LibraryExtensio
126117
project.getTasks().register("generateApiTxtFile", GenerateApiTxtFileTask.class, task -> {
127118
task.setApiTxt(project.file("api.txt"));
128119
task.setMetalavaJarPath(metalavaOutputJarFile.getAbsolutePath());
129-
task.setSourcePath(sourcePathArgument);
120+
task.setSourcePath(sourcePath);
130121
task.setBaselineFile(project.file("baseline.txt"));
131122
if (project.hasProperty("updateBaseline")) {
132123
task.setUpdateBaseline(true);

buildSrc/src/main/groovy/com/google/firebase/gradle/plugins/apiinfo/ApiInformationTask.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import org.gradle.api.DefaultTask;
2323
import org.gradle.api.GradleException;
2424
import org.gradle.api.tasks.Input;
25+
import org.gradle.api.tasks.InputDirectory;
2526
import org.gradle.api.tasks.InputFile;
27+
import org.gradle.api.tasks.InputFiles;
2628
import org.gradle.api.tasks.OutputFile;
2729
import org.gradle.api.tasks.TaskAction;
2830

@@ -43,8 +45,8 @@ public abstract class ApiInformationTask extends DefaultTask {
4345
@InputFile
4446
abstract File getApiTxt();
4547

46-
@Input
47-
abstract String getSourcePath();
48+
@InputFiles
49+
abstract List<File> getSourcePath();
4850

4951
@OutputFile
5052
abstract File getBaselineFile();
@@ -58,7 +60,7 @@ public abstract class ApiInformationTask extends DefaultTask {
5860
@OutputFile
5961
abstract File getOutputFile();
6062

61-
public abstract void setSourcePath(String value);
63+
public abstract void setSourcePath(List<File> value);
6264

6365
public abstract void setBaselineFile(File value);
6466

@@ -75,7 +77,7 @@ public abstract class ApiInformationTask extends DefaultTask {
7577

7678
@TaskAction
7779
void execute() {
78-
80+
String sourcePath = getSourcePath().stream().map(File::getAbsolutePath).collect(Collectors.joining(":"));
7981
File outputFileDir = getOutputFile().getParentFile();
8082
if(!outputFileDir.exists()) {
8183
outputFileDir.mkdirs();
@@ -86,7 +88,7 @@ void execute() {
8688
spec.setMain("-jar");
8789
spec.setArgs(Arrays.asList(
8890
getMetalavaJarPath(),
89-
"--source-path", getSourcePath(),
91+
"--source-path", sourcePath,
9092
"--api", getOutputApiFile().getAbsolutePath(),
9193
"--format=v2"
9294
));

buildSrc/src/main/groovy/com/google/firebase/gradle/plugins/apiinfo/GenerateApiTxtFileTask.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919
import java.util.List;
2020
import org.gradle.api.DefaultTask;
2121
import org.gradle.api.tasks.Input;
22+
import org.gradle.api.tasks.InputDirectory;
23+
import org.gradle.api.tasks.InputFiles;
2224
import org.gradle.api.tasks.OutputFile;
2325
import org.gradle.api.tasks.TaskAction;
2426
import java.io.File;
2527

2628
import java.util.Arrays;
29+
import java.util.stream.Collector;
30+
import java.util.stream.Collectors;
2731

2832

2933
public abstract class GenerateApiTxtFileTask extends DefaultTask {
@@ -34,8 +38,8 @@ public abstract class GenerateApiTxtFileTask extends DefaultTask {
3438
@OutputFile
3539
abstract File getApiTxt();
3640

37-
@Input
38-
abstract String getSourcePath();
41+
@InputFiles
42+
abstract List<File> getSourcePath();
3943

4044

4145
@OutputFile
@@ -45,7 +49,7 @@ public abstract class GenerateApiTxtFileTask extends DefaultTask {
4549
abstract boolean getUpdateBaseline();
4650

4751

48-
public abstract void setSourcePath(String value);
52+
public abstract void setSourcePath(List<File> value);
4953

5054
public abstract void setBaselineFile(File value);
5155

@@ -57,9 +61,10 @@ public abstract class GenerateApiTxtFileTask extends DefaultTask {
5761

5862
@TaskAction
5963
void execute() {
64+
String sourcePath = getSourcePath().stream().map(File::getAbsolutePath).collect(Collectors.joining(":"));
6065
List<String> args = new ArrayList<String>(Arrays.asList(
6166
getMetalavaJarPath(),
62-
"--source-path", getSourcePath(),
67+
"--source-path", sourcePath,
6368
"--api", getApiTxt().getAbsolutePath(),
6469
"--format=v2",
6570
"--delete-empty-baselines"

0 commit comments

Comments
 (0)