14
14
15
15
package com .google .firebase .gradle .bomgenerator ;
16
16
17
- import java .nio .charset .StandardCharsets ;
18
- import java .nio .file .Files ;
19
17
import com .google .firebase .gradle .bomgenerator .model .Dependency ;
20
18
import java .io .File ;
21
19
import java .io .IOException ;
20
+ import java .nio .charset .StandardCharsets ;
21
+ import java .nio .file .Files ;
22
22
import java .util .Collections ;
23
23
import java .util .List ;
24
24
import java .util .Map ;
@@ -32,55 +32,156 @@ public RecipeVersionWriter(List<Dependency> firebaseDependencies) {
32
32
}
33
33
34
34
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 ));
36
37
StringBuilder outputBuilder = new StringBuilder ();
38
+ outputBuilder .append ("<!DOCTYPE root [\n " + " <!-- Common Firebase dependencies -->\n " );
37
39
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" ));
41
45
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 " );
44
48
outputBuilder .append ("\n " );
45
49
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" ));
61
137
outputBuilder .append ("\n " );
62
138
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" ));
66
153
outputBuilder .append (" <!ENTITY crashlytics-plugin \" com.google.firebase.crashlytics\" >\n \n " );
67
154
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" ));
69
161
outputBuilder .append (" <!ENTITY perf-plugin \" com.google.firebase.firebase-perf\" >\n " );
70
162
outputBuilder .append ("]>\n " );
71
163
return outputBuilder .toString ();
72
164
}
73
165
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 " ;
80
179
}
81
180
82
181
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 ),
84
185
StandardCharsets .UTF_8 );
85
186
}
86
187
}
0 commit comments