Skip to content

Commit b9525bb

Browse files
authored
Add dummy task in javadoc plugin to generate an empty api.txt file (#2447)
Also add support for formatting plugin in buildSrc.
1 parent 3f237a3 commit b9525bb

File tree

9 files changed

+240
-206
lines changed

9 files changed

+240
-206
lines changed

buildSrc/build.gradle

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
plugins {
1616
id "org.gradle.kotlin.kotlin-dsl" version "1.2.6"
1717
id "org.jlleitschuh.gradle.ktlint" version "9.2.1"
18+
id 'com.github.sherter.google-java-format' version '0.9'
1819
}
1920

2021
repositories {
@@ -35,6 +36,23 @@ repositories {
3536
// Refer go/fireperf-plugin-test-on-head for more details.
3637
def perfPluginVersion = System.getenv("FIREBASE_PERF_PLUGIN_VERSION") ?: "1.3.4"
3738

39+
googleJavaFormat {
40+
toolVersion = '1.7'
41+
}
42+
tasks.googleJavaFormat {
43+
source '.'
44+
include '**/java/**/*.java'
45+
exclude '**/generated/**'
46+
exclude '**/package-info.java'
47+
}
48+
49+
tasks.verifyGoogleJavaFormat {
50+
source '.'
51+
include '**/java/**/*.java'
52+
exclude '**/generated/**'
53+
exclude '**/package-info.java'
54+
}
55+
3856
dependencies {
3957
// Firebase performance plugin, it should be added here because of how gradle dependency
4058
// resolution works, otherwise it breaks Fireperf Test Apps.

buildSrc/src/main/java/com/google/firebase/gradle/plugins/Dokka.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ static void configure(
6363
BuildTypeAttr.ATTRIBUTE, project.getObjects().named(BuildTypeAttr.class, "release"));
6464
}
6565
Configuration runtimeOnly = project.getConfigurations().findByName("runtimeOnly");
66-
if(runtimeOnly != null) {
66+
if (runtimeOnly != null) {
6767
javadocClasspath.extendsFrom(runtimeOnly);
6868
}
6969

buildSrc/src/main/java/com/google/firebase/gradle/plugins/JavadocPlugin.java

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
// limitations under the License.
1414
package com.google.firebase.gradle.plugins;
1515

16-
import static com.google.firebase.gradle.plugins.ProjectUtilsKt.toBoolean;
1716
import static com.google.firebase.gradle.plugins.ClosureUtil.closureOf;
17+
import static com.google.firebase.gradle.plugins.ProjectUtilsKt.toBoolean;
1818

1919
import com.android.build.gradle.LibraryExtension;
2020
import com.google.common.collect.ImmutableList;
@@ -93,11 +93,14 @@ private static void applyDoclava(Project project) {
9393
generateJavadoc,
9494
closureOf(
9595
(Javadoc javadoc) -> {
96-
project.getTasks().all(it -> {
97-
if (it.getName().equals("assembleRelease")) {
98-
javadoc.dependsOn(it);
99-
}
100-
});
96+
project
97+
.getTasks()
98+
.all(
99+
it -> {
100+
if (it.getName().equals("assembleRelease")) {
101+
javadoc.dependsOn(it);
102+
}
103+
});
101104
// Besides third party libraries, firestore depends on the sibling module
102105
// :immutable-collection,
103106
// which needs to be in the classpath when javadoc is run
@@ -148,8 +151,9 @@ private static void applyDoclava(Project project) {
148151
javadoc.setClasspath(
149152
javadoc
150153
.getClasspath()
151-
.plus(getJars(variant.getCompileConfiguration())
152-
.plus(getJars(variant.getRuntimeConfiguration()))));
154+
.plus(
155+
getJars(variant.getCompileConfiguration())
156+
.plus(getJars(variant.getRuntimeConfiguration()))));
153157

154158
// this includes compiled sources which avoids "cannot find symbol" errors
155159
javadoc.setClasspath(
@@ -260,9 +264,12 @@ private static void applyDoclava(Project project) {
260264
}));
261265
project
262266
.getTasks()
263-
.create(TasksKt.JAVADOC_TASK_NAME, task -> {
264-
task.dependsOn(generateJavadoc);
265-
});
267+
.create(
268+
TasksKt.JAVADOC_TASK_NAME,
269+
task -> {
270+
task.dependsOn(generateJavadoc);
271+
createEmptyApiFile(project);
272+
});
266273
}
267274

268275
private static void applyDokka(Project project) {
@@ -275,20 +282,25 @@ private static void applyDokka(Project project) {
275282
private static Task applyDummyJavadoc(Project project) {
276283
return project
277284
.getTasks()
278-
.create(TasksKt.JAVADOC_TASK_NAME, task -> {
279-
task.doLast(
280-
t -> {
281-
File dir = project.file(project.getBuildDir() + "/tmp/javadoc");
282-
project.mkdir(dir);
283-
try {
284-
project.file(dir + "/api.txt").createNewFile();
285-
} catch (IOException e) {
286-
throw new GradleException("Unable to create file", e);
287-
}
288-
});
289-
task.doLast(
290-
t -> project.mkdir(project.getBuildDir() + "/docs/javadoc/reference"));
291-
});
285+
.create(
286+
TasksKt.JAVADOC_TASK_NAME,
287+
task -> {
288+
task.doLast(
289+
t -> {
290+
createEmptyApiFile(project);
291+
});
292+
task.doLast(t -> project.mkdir(project.getBuildDir() + "/docs/javadoc/reference"));
293+
});
294+
}
295+
296+
private static void createEmptyApiFile(Project project) {
297+
File dir = project.file(project.getBuildDir() + "/tmp/javadoc");
298+
project.mkdir(dir);
299+
try {
300+
project.file(dir + "/api.txt").createNewFile();
301+
} catch (IOException e) {
302+
throw new GradleException("Unable to create file", e);
303+
}
292304
}
293305

294306
private static FileCollection getJars(Configuration configuration) {

buildSrc/src/main/java/com/google/firebase/gradle/plugins/ci/ContinuousIntegrationPlugin.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ public void apply(Project project) {
3939
Task connectedCheckDependents = sub.task("connectedCheckDependents");
4040
Task deviceCheckDependents = sub.task("deviceCheckDependents");
4141

42-
sub
43-
.getConfigurations()
42+
sub.getConfigurations()
4443
.all(
4544
cfg -> {
4645
if ("releaseUnitTestRuntimeClasspath".equals(cfg.getName())) {

buildSrc/src/main/java/com/google/firebase/gradle/plugins/ci/device/FirebaseTestLabExtension.java

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,37 @@
1414

1515
package com.google.firebase.gradle.plugins.ci.device;
1616

17-
18-
import org.gradle.api.model.ObjectFactory;
19-
import org.gradle.api.provider.SetProperty;
20-
2117
import java.util.Collections;
2218
import java.util.Set;
23-
2419
import javax.inject.Inject;
20+
import org.gradle.api.model.ObjectFactory;
21+
import org.gradle.api.provider.SetProperty;
2522

2623
public class FirebaseTestLabExtension {
27-
private final SetProperty<String> devices;
28-
private boolean enabled;
24+
private final SetProperty<String> devices;
25+
private boolean enabled;
2926

30-
@Inject
31-
public FirebaseTestLabExtension(ObjectFactory objectFactory) {
32-
devices = objectFactory.setProperty(String.class);
33-
}
27+
@Inject
28+
public FirebaseTestLabExtension(ObjectFactory objectFactory) {
29+
devices = objectFactory.setProperty(String.class);
30+
}
3431

35-
public void setEnabled(boolean value) {
36-
enabled = value;
37-
}
32+
public void setEnabled(boolean value) {
33+
enabled = value;
34+
}
3835

39-
public boolean getEnabled() {
40-
return enabled;
41-
}
36+
public boolean getEnabled() {
37+
return enabled;
38+
}
4239

43-
public void device(String device) {
44-
devices.add(device);
45-
}
40+
public void device(String device) {
41+
devices.add(device);
42+
}
4643

47-
Set<String> getDevices() {
48-
if( devices.get().isEmpty()) {
49-
return Collections.singleton("model=Pixel2,version=27,locale=en,orientation=portrait");
50-
}
51-
return devices.get();
44+
Set<String> getDevices() {
45+
if (devices.get().isEmpty()) {
46+
return Collections.singleton("model=Pixel2,version=27,locale=en,orientation=portrait");
5247
}
48+
return devices.get();
49+
}
5350
}

0 commit comments

Comments
 (0)