Skip to content

Commit c04704f

Browse files
committed
Merge master and fix format
1 parent 736be15 commit c04704f

File tree

7 files changed

+374
-224
lines changed

7 files changed

+374
-224
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/bomgenerator/BomGeneratorTask.java

Lines changed: 166 additions & 145 deletions
Large diffs are not rendered by default.

buildSrc/src/main/java/com/google/firebase/gradle/bomgenerator/MarkdownDocumentationWriter.java

Lines changed: 52 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414

1515
package com.google.firebase.gradle.bomgenerator;
1616

17-
import java.nio.charset.StandardCharsets;
18-
import java.nio.file.Files;
1917
import com.google.firebase.gradle.bomgenerator.model.Dependency;
2018
import java.io.File;
2119
import java.io.IOException;
20+
import java.nio.charset.StandardCharsets;
21+
import java.nio.file.Files;
2222
import java.util.Collections;
2323
import java.util.Comparator;
2424
import java.util.List;
@@ -30,7 +30,11 @@ public class MarkdownDocumentationWriter {
3030
private final String version;
3131
private final String previousVersion;
3232

33-
public MarkdownDocumentationWriter(List<Dependency> firebaseDependencies, String version, Map<String, String> previousBomVersions, String previousVersion) {
33+
public MarkdownDocumentationWriter(
34+
List<Dependency> firebaseDependencies,
35+
String version,
36+
Map<String, String> previousBomVersions,
37+
String previousVersion) {
3438
this.firebaseDependencies = firebaseDependencies;
3539
this.previousBomVersions = previousBomVersions;
3640
this.version = version;
@@ -40,17 +44,18 @@ public MarkdownDocumentationWriter(List<Dependency> firebaseDependencies, String
4044
public String generateDocumentation() {
4145
StringBuilder docBuilder = new StringBuilder();
4246
docBuilder.append(generateHeader(version));
43-
firebaseDependencies
44-
.stream()
45-
.sorted(Comparator.comparing(Dependency::toGradleString))
46-
.map(this::generateListEntry)
47-
.forEach(docBuilder::append);
47+
firebaseDependencies.stream()
48+
.sorted(Comparator.comparing(Dependency::toGradleString))
49+
.map(this::generateListEntry)
50+
.forEach(docBuilder::append);
4851
docBuilder.append(generateFooter());
4952
return docBuilder.toString();
5053
}
5154

5255
public void writeDocumentation(String document) throws IOException {
53-
Files.write(new File("bomReleaseNotes.md").toPath(), Collections.singleton(document),
56+
Files.write(
57+
new File("bomReleaseNotes.md").toPath(),
58+
Collections.singleton(document),
5459
StandardCharsets.UTF_8);
5560
}
5661

@@ -59,10 +64,17 @@ public String getVersion() {
5964
}
6065

6166
private String generateHeader(String version) {
62-
return "### {{firebase_bom_long}} ({{bill_of_materials}}) version " + version + " " + headingId() + "\n"
63-
+ "{% comment %}\n" + "These library versions must be flat-typed, do not use variables.\n"
67+
return "### {{firebase_bom_long}} ({{bill_of_materials}}) version "
68+
+ version
69+
+ " "
70+
+ headingId()
71+
+ "\n"
72+
+ "{% comment %}\n"
73+
+ "These library versions must be flat-typed, do not use variables.\n"
6474
+ "The release note for this BoM version is a library-version snapshot.\n"
65-
+ "{% endcomment %}\n" + "\n" + "<section class=\"expandable\">\n"
75+
+ "{% endcomment %}\n"
76+
+ "\n"
77+
+ "<section class=\"expandable\">\n"
6678
+ " <p class=\"showalways\">\n"
6779
+ " Firebase Android SDKs mapped to this {{bom}} version</p>\n"
6880
+ " <p>Libraries that were versioned with this release are in highlighted rows.\n"
@@ -72,23 +84,42 @@ private String generateHeader(String version) {
7284
+ " <table>\n"
7385
+ " <thead>\n"
7486
+ " <th>Artifact name</th>\n"
75-
+ " <th>Version mapped<br>to previous {{bom}} v" + previousVersion + "</th>\n"
76-
+ " <th>Version mapped<br>to this {{bom}} v" + version + "</th>\n"
87+
+ " <th>Version mapped<br>to previous {{bom}} v"
88+
+ previousVersion
89+
+ "</th>\n"
90+
+ " <th>Version mapped<br>to this {{bom}} v"
91+
+ version
92+
+ "</th>\n"
7793
+ " </thead>\n"
7894
+ " <tbody>\n";
7995
}
8096

8197
private String generateListEntry(Dependency dep) {
82-
String previousDepVersion = previousBomVersions.containsKey(dep.fullArtifactId()) ? previousBomVersions.get(dep.fullArtifactId()) : "N/A";
98+
String previousDepVersion =
99+
previousBomVersions.containsKey(dep.fullArtifactId())
100+
? previousBomVersions.get(dep.fullArtifactId())
101+
: "N/A";
83102
boolean depChanged = !dep.version().equals(previousDepVersion);
84103
String boldOpenTag = depChanged ? "<b>" : "";
85104
String boldClosedTag = depChanged ? "</b>" : "";
86-
String tableStyle = depChanged ? " class=\"alt\"" : "";
87-
return " <tr" + tableStyle + ">\n"
88-
+ " <td>" + boldOpenTag + dep.fullArtifactId() + boldClosedTag + "</td>\n"
89-
+ " <td>" + previousDepVersion + "</td>\n"
90-
+ " <td>" + boldOpenTag + dep.version() + boldClosedTag + "</td>\n"
91-
+ " </tr>\n";
105+
String tableStyle = depChanged ? " class=\"alt\"" : "";
106+
return " <tr"
107+
+ tableStyle
108+
+ ">\n"
109+
+ " <td>"
110+
+ boldOpenTag
111+
+ dep.fullArtifactId()
112+
+ boldClosedTag
113+
+ "</td>\n"
114+
+ " <td>"
115+
+ previousDepVersion
116+
+ "</td>\n"
117+
+ " <td>"
118+
+ boldOpenTag
119+
+ dep.version()
120+
+ boldClosedTag
121+
+ "</td>\n"
122+
+ " </tr>\n";
92123
}
93124

94125
private String generateFooter() {

buildSrc/src/main/java/com/google/firebase/gradle/bomgenerator/PomXmlWriter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,23 @@
1414

1515
package com.google.firebase.gradle.bomgenerator;
1616

17+
import com.google.firebase.gradle.bomgenerator.model.Dependency;
1718
import java.io.IOException;
1819
import java.nio.file.Files;
1920
import java.nio.file.Path;
2021
import java.util.List;
21-
2222
import javax.xml.parsers.DocumentBuilderFactory;
2323
import javax.xml.parsers.ParserConfigurationException;
2424
import javax.xml.transform.OutputKeys;
2525
import javax.xml.transform.Transformer;
26+
import javax.xml.transform.TransformerException;
2627
import javax.xml.transform.TransformerFactory;
2728
import javax.xml.transform.dom.DOMSource;
2829
import javax.xml.transform.stream.StreamResult;
29-
import javax.xml.transform.TransformerException;
3030
import org.eclipse.aether.resolution.VersionRangeResolutionException;
3131
import org.w3c.dom.Document;
3232
import org.w3c.dom.Element;
3333

34-
import com.google.firebase.gradle.bomgenerator.model.Dependency;
35-
3634
public class PomXmlWriter {
3735
private static final String ARTIFACT_GROUP_ID = "com.google.firebase";
3836
private static final String ARTIFACT_ARTIFACT_ID = "firebase-bom";

buildSrc/src/main/java/com/google/firebase/gradle/bomgenerator/RecipeVersionWriter.java

Lines changed: 135 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414

1515
package com.google.firebase.gradle.bomgenerator;
1616

17-
import java.nio.charset.StandardCharsets;
18-
import java.nio.file.Files;
1917
import com.google.firebase.gradle.bomgenerator.model.Dependency;
2018
import java.io.File;
2119
import java.io.IOException;
20+
import java.nio.charset.StandardCharsets;
21+
import java.nio.file.Files;
2222
import java.util.Collections;
2323
import java.util.List;
2424
import java.util.Map;
@@ -32,55 +32,156 @@ public RecipeVersionWriter(List<Dependency> firebaseDependencies) {
3232
}
3333

3434
public String generateVersionUpdate() {
35-
Map<String, Dependency> depsByArtifactId = firebaseDependencies.stream().collect(Collectors.toMap(Dependency::fullArtifactId, x -> x));
35+
Map<String, Dependency> depsByArtifactId =
36+
firebaseDependencies.stream().collect(Collectors.toMap(Dependency::fullArtifactId, x -> x));
3637
StringBuilder outputBuilder = new StringBuilder();
38+
outputBuilder.append("<!DOCTYPE root [\n" + " <!-- Common Firebase dependencies -->\n");
3739
outputBuilder.append(
38-
"<!DOCTYPE root [\n" +
39-
" <!-- Common Firebase dependencies -->\n");
40-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Google Services Plugin", "google-services-plugin-class", "com.google.gms:google-services"));
40+
generateVersionVariable(
41+
depsByArtifactId,
42+
"Google Services Plugin",
43+
"google-services-plugin-class",
44+
"com.google.gms:google-services"));
4145
outputBuilder.append(
42-
" <!ENTITY google-services-plugin \"com.google.gms.google-services\">\n" +
43-
" <!ENTITY gradle-plugin-class \"com.android.tools.build:gradle:3.4.0\">\n");
46+
" <!ENTITY google-services-plugin \"com.google.gms.google-services\">\n"
47+
+ " <!ENTITY gradle-plugin-class \"com.android.tools.build:gradle:3.4.0\">\n");
4448
outputBuilder.append("\n");
4549
outputBuilder.append(" <!-- Firebase SDK libraries -->\n");
46-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Analytics", "analytics-dependency", "com.google.firebase:firebase-analytics"));
47-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Crashlytics", "crashlytics-dependency", "com.google.firebase:firebase-crashlytics"));
48-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Performance Monitoring", "perf-dependency", "com.google.firebase:firebase-perf"));
49-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Cloud Messaging", "messaging-dependency", "com.google.firebase:firebase-messaging"));
50-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Authentication", "auth-dependency", "com.google.firebase:firebase-auth"));
51-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Realtime Database", "database-dependency", "com.google.firebase:firebase-database"));
52-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Cloud Storage", "storage-dependency", "com.google.firebase:firebase-storage"));
53-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Remote Config", "remote-config-dependency", "com.google.firebase:firebase-config"));
54-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "App Indexing", "appindexing-dependency", "com.google.firebase:firebase-appindexing"));
55-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Admob", "ads-dependency", "com.google.firebase:firebase-ads"));
56-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Cloud Firestore", "firestore-dependency", "com.google.firebase:firebase-firestore"));
57-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Firebase Functions", "functions-dependency", "com.google.firebase:firebase-functions"));
58-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Firebase Dynamic Links", "fdl-dependency", "com.google.firebase:firebase-dynamic-links"));
59-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "FIAM Display", "fiamd-dependency", "com.google.firebase:firebase-inappmessaging-display"));
60-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Firebase MLKit Vision", "ml-vision-dependency", "com.google.firebase:firebase-ml-vision"));
50+
outputBuilder.append(
51+
generateVersionVariable(
52+
depsByArtifactId,
53+
"Analytics",
54+
"analytics-dependency",
55+
"com.google.firebase:firebase-analytics"));
56+
outputBuilder.append(
57+
generateVersionVariable(
58+
depsByArtifactId,
59+
"Crashlytics",
60+
"crashlytics-dependency",
61+
"com.google.firebase:firebase-crashlytics"));
62+
outputBuilder.append(
63+
generateVersionVariable(
64+
depsByArtifactId,
65+
"Performance Monitoring",
66+
"perf-dependency",
67+
"com.google.firebase:firebase-perf"));
68+
outputBuilder.append(
69+
generateVersionVariable(
70+
depsByArtifactId,
71+
"Cloud Messaging",
72+
"messaging-dependency",
73+
"com.google.firebase:firebase-messaging"));
74+
outputBuilder.append(
75+
generateVersionVariable(
76+
depsByArtifactId,
77+
"Authentication",
78+
"auth-dependency",
79+
"com.google.firebase:firebase-auth"));
80+
outputBuilder.append(
81+
generateVersionVariable(
82+
depsByArtifactId,
83+
"Realtime Database",
84+
"database-dependency",
85+
"com.google.firebase:firebase-database"));
86+
outputBuilder.append(
87+
generateVersionVariable(
88+
depsByArtifactId,
89+
"Cloud Storage",
90+
"storage-dependency",
91+
"com.google.firebase:firebase-storage"));
92+
outputBuilder.append(
93+
generateVersionVariable(
94+
depsByArtifactId,
95+
"Remote Config",
96+
"remote-config-dependency",
97+
"com.google.firebase:firebase-config"));
98+
outputBuilder.append(
99+
generateVersionVariable(
100+
depsByArtifactId,
101+
"App Indexing",
102+
"appindexing-dependency",
103+
"com.google.firebase:firebase-appindexing"));
104+
outputBuilder.append(
105+
generateVersionVariable(
106+
depsByArtifactId, "Admob", "ads-dependency", "com.google.firebase:firebase-ads"));
107+
outputBuilder.append(
108+
generateVersionVariable(
109+
depsByArtifactId,
110+
"Cloud Firestore",
111+
"firestore-dependency",
112+
"com.google.firebase:firebase-firestore"));
113+
outputBuilder.append(
114+
generateVersionVariable(
115+
depsByArtifactId,
116+
"Firebase Functions",
117+
"functions-dependency",
118+
"com.google.firebase:firebase-functions"));
119+
outputBuilder.append(
120+
generateVersionVariable(
121+
depsByArtifactId,
122+
"Firebase Dynamic Links",
123+
"fdl-dependency",
124+
"com.google.firebase:firebase-dynamic-links"));
125+
outputBuilder.append(
126+
generateVersionVariable(
127+
depsByArtifactId,
128+
"FIAM Display",
129+
"fiamd-dependency",
130+
"com.google.firebase:firebase-inappmessaging-display"));
131+
outputBuilder.append(
132+
generateVersionVariable(
133+
depsByArtifactId,
134+
"Firebase MLKit Vision",
135+
"ml-vision-dependency",
136+
"com.google.firebase:firebase-ml-vision"));
61137
outputBuilder.append("\n");
62138
outputBuilder.append(" <!-- Firebase Gradle plugins -->\n");
63-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "App Distribution", "appdistribution-plugin-class", "com.google.firebase:firebase-appdistribution-gradle"));
64-
outputBuilder.append(" <!ENTITY appdistribution-plugin \"com.google.firebase.appdistribution\">\n\n");
65-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Crashlytics", "crashlytics-plugin-class", "com.google.firebase:firebase-crashlytics-gradle"));
139+
outputBuilder.append(
140+
generateVersionVariable(
141+
depsByArtifactId,
142+
"App Distribution",
143+
"appdistribution-plugin-class",
144+
"com.google.firebase:firebase-appdistribution-gradle"));
145+
outputBuilder.append(
146+
" <!ENTITY appdistribution-plugin \"com.google.firebase.appdistribution\">\n\n");
147+
outputBuilder.append(
148+
generateVersionVariable(
149+
depsByArtifactId,
150+
"Crashlytics",
151+
"crashlytics-plugin-class",
152+
"com.google.firebase:firebase-crashlytics-gradle"));
66153
outputBuilder.append(" <!ENTITY crashlytics-plugin \"com.google.firebase.crashlytics\">\n\n");
67154
outputBuilder.append(" <!-- Performance Monitoring -->\n");
68-
outputBuilder.append(generateVersionVariable(depsByArtifactId, "Perf Plugin", "perf-plugin-class", "com.google.firebase:perf-plugin"));
155+
outputBuilder.append(
156+
generateVersionVariable(
157+
depsByArtifactId,
158+
"Perf Plugin",
159+
"perf-plugin-class",
160+
"com.google.firebase:perf-plugin"));
69161
outputBuilder.append(" <!ENTITY perf-plugin \"com.google.firebase.firebase-perf\">\n");
70162
outputBuilder.append("]>\n");
71163
return outputBuilder.toString();
72164
}
73165

74-
private static String generateVersionVariable(Map<String, Dependency> depsByArtifactId, String comment, String alias, String artifactId) {
75-
if (!depsByArtifactId.containsKey(artifactId)) {
76-
throw new RuntimeException("Error fetching newest version for " + artifactId);
77-
}
78-
return " <!-- " + comment + "-->\n" +
79-
" <!ENTITY " + alias + " \"" + depsByArtifactId.get(artifactId).toGradleString() + "\">\n";
166+
private static String generateVersionVariable(
167+
Map<String, Dependency> depsByArtifactId, String comment, String alias, String artifactId) {
168+
if (!depsByArtifactId.containsKey(artifactId)) {
169+
throw new RuntimeException("Error fetching newest version for " + artifactId);
170+
}
171+
return " <!-- "
172+
+ comment
173+
+ "-->\n"
174+
+ " <!ENTITY "
175+
+ alias
176+
+ " \""
177+
+ depsByArtifactId.get(artifactId).toGradleString()
178+
+ "\">\n";
80179
}
81180

82181
public void writeVersionUpdate(String document) throws IOException {
83-
Files.write(new File("recipeVersionUpdate.txt").toPath(), Collections.singleton(document),
182+
Files.write(
183+
new File("recipeVersionUpdate.txt").toPath(),
184+
Collections.singleton(document),
84185
StandardCharsets.UTF_8);
85186
}
86187
}

0 commit comments

Comments
 (0)