Skip to content

Commit f6735ee

Browse files
committed
address comments
1 parent 9f0a635 commit f6735ee

File tree

5 files changed

+61
-57
lines changed

5 files changed

+61
-57
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/BaseFirebaseLibraryPlugin.kt

Lines changed: 49 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -84,49 +84,61 @@ abstract class BaseFirebaseLibraryPlugin : Plugin<Project> {
8484
}
8585
}
8686

87-
protected fun getSemverTask(project: Project, firebaseLibrary: FirebaseLibraryExtension) {
88-
val firebaseLibraryType = firebaseLibrary.type
89-
val isAar = firebaseLibraryType.equals(LibraryType.ANDROID)
87+
protected fun getSemverTaskJar(project: Project, firebaseLibrary: FirebaseLibraryExtension) {
88+
project.mkdir("semver")
9089
project.tasks.register<GmavenCopier>("copyPreviousArtifacts") {
91-
if (isAar) {
92-
dependsOn("bundleReleaseAar")
93-
} else {
94-
dependsOn("jar")
95-
}
96-
val outputPath =
97-
if (isAar) project.file("build/previous.aar").absolutePath
98-
else project.file("build/previous.jar").absolutePath
99-
if (isAar) project.file("build/previous.aar").delete()
100-
else project.file("build/previous.jar").delete()
90+
dependsOn("jar")
91+
project.file("semver/previous.jar").delete()
92+
groupId.value(firebaseLibrary.groupId.get())
93+
artifactId.value(firebaseLibrary.artifactId.get())
94+
aarAndroidFile.value(false)
95+
filePath.value(project.file("semver/previous.jar").absolutePath)
96+
}
97+
val currentJarFile =
98+
project
99+
.file("build/libs/${firebaseLibrary.artifactId.get()}-${firebaseLibrary.version}.jar")
100+
.absolutePath
101+
val previousJarFile = project.file("semver/previous.jar").absolutePath
102+
project.tasks.register<ApiDiffer>("semverCheck") {
103+
currentJar.value(currentJarFile)
104+
previousJar.value(previousJarFile)
105+
version.value(firebaseLibrary.version)
106+
previousVersionString.value(
107+
GmavenHelper(firebaseLibrary.groupId.get(), firebaseLibrary.artifactId.get())
108+
.getLatestReleasedVersion()
109+
)
110+
111+
dependsOn("copyPreviousArtifacts")
112+
}
113+
}
114+
protected fun getSemverTaskAar(project: Project, firebaseLibrary: FirebaseLibraryExtension) {
115+
project.mkdir("semver")
116+
project.tasks.register<GmavenCopier>("copyPreviousArtifacts") {
117+
dependsOn("bundleReleaseAar")
118+
project.file("semver/previous.aar").delete()
101119

102120
groupId.value(firebaseLibrary.groupId.get())
103121
artifactId.value(firebaseLibrary.artifactId.get())
104-
aarAndroidFile.value(isAar)
105-
filePath.value(outputPath)
122+
aarAndroidFile.value(true)
123+
filePath.value(project.file("semver/previous.aar").absolutePath)
106124
}
107-
if (isAar) {
108-
project.tasks.register<Copy>("extractCurrentClasses") {
109-
dependsOn("bundleReleaseAar")
110125

111-
from(project.zipTree("build/outputs/aar/${firebaseLibrary.artifactId.get()}-release.aar"))
112-
into(project.file("build/current-version"))
113-
}
114-
project.tasks.register<Copy>("extractPreviousClasses") {
115-
dependsOn("copyPreviousArtifacts")
126+
project.tasks.register<Copy>("extractCurrentClasses") {
127+
dependsOn("bundleReleaseAar")
116128

117-
from(project.zipTree("build/previous.aar"))
118-
into(project.file("build/previous-version"))
119-
}
129+
from(project.zipTree("build/outputs/aar/${firebaseLibrary.artifactId.get()}-release.aar"))
130+
into(project.file("semver/current-version"))
120131
}
121-
val currentJarFile =
122-
if (isAar) project.file("build/current-version/classes.jar").absolutePath
123-
else
124-
project
125-
.file("build/libs/${firebaseLibrary.artifactId.get()}-${firebaseLibrary.version}.jar")
126-
.absolutePath
127-
val previousJarFile =
128-
if (isAar) project.file("build/previous-version/classes.jar").absolutePath
129-
else project.file("build/previous.jar").absolutePath
132+
project.tasks.register<Copy>("extractPreviousClasses") {
133+
dependsOn("copyPreviousArtifacts")
134+
135+
from(project.zipTree("semver/previous.aar"))
136+
into(project.file("semver/previous-version"))
137+
}
138+
139+
val currentJarFile = project.file("semver/current-version/classes.jar").absolutePath
140+
141+
val previousJarFile = project.file("semver/previous-version/classes.jar").absolutePath
130142
project.tasks.register<ApiDiffer>("semverCheck") {
131143
currentJar.value(currentJarFile)
132144
previousJar.value(previousJarFile)
@@ -135,13 +147,8 @@ abstract class BaseFirebaseLibraryPlugin : Plugin<Project> {
135147
GmavenHelper(firebaseLibrary.groupId.get(), firebaseLibrary.artifactId.get())
136148
.getLatestReleasedVersion()
137149
)
138-
139-
if (isAar) {
140-
dependsOn("extractCurrentClasses")
141-
dependsOn("extractPreviousClasses")
142-
} else {
143-
dependsOn("copyPreviousArtifacts")
144-
}
150+
dependsOn("extractCurrentClasses")
151+
dependsOn("extractPreviousClasses")
145152
}
146153
}
147154

buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class FirebaseJavaLibraryPlugin : BaseFirebaseLibraryPlugin() {
4848
setupStaticAnalysis(project, firebaseLibrary)
4949
setupApiInformationAnalysis(project)
5050
getIsPomValidTask(project, firebaseLibrary)
51-
getSemverTask(project, firebaseLibrary)
51+
getSemverTaskJar(project, firebaseLibrary)
5252
configurePublishing(project, firebaseLibrary)
5353
}
5454

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class FirebaseLibraryPlugin : BaseFirebaseLibraryPlugin() {
8181
android.testServer(FirebaseTestServer(project, firebaseLibrary.testLab, android))
8282
setupStaticAnalysis(project, firebaseLibrary)
8383
getIsPomValidTask(project, firebaseLibrary)
84-
getSemverTask(project, firebaseLibrary)
84+
getSemverTaskAar(project, firebaseLibrary)
8585
configurePublishing(project, firebaseLibrary, android)
8686
}
8787

buildSrc/src/main/java/com/google/firebase/gradle/plugins/semver/ClassInfo.kt

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ import org.objectweb.asm.tree.ClassNode
1818
import org.objectweb.asm.tree.FieldNode
1919
import org.objectweb.asm.tree.MethodNode
2020

21-
class ClassInfo(val _node: ClassNode, val _classNodes: Map<String, ClassNode>) {
21+
class ClassInfo(node: ClassNode, classNodes: Map<String, ClassNode>) {
2222
val name: String
2323
val node: ClassNode
2424
val fields: Map<String, FieldNode>
2525
val methods: Map<String, MethodNode>
2626
val methodsCache: MutableMap<String, Map<String, MethodNode>>
2727

2828
init {
29-
this.name = _node.name
30-
this.node = _node
31-
this.fields = getAllFields(_node)
29+
this.name = node.name
30+
this.node = node
31+
this.fields = getAllFields(node)
3232
this.methodsCache = mutableMapOf()
33-
this.methods = getAllMethods(_node, _classNodes)
33+
this.methods = getAllMethods(node, classNodes)
3434
}
3535

3636
fun getAllFields(node: ClassNode): Map<String, FieldNode> =
@@ -61,7 +61,7 @@ class ClassInfo(val _node: ClassNode, val _classNodes: Map<String, ClassNode>) {
6161
if (methodsCache.containsKey(node.name)) {
6262
return methodsCache.get(node.name)!!
6363
}
64-
var result =
64+
val result: MutableMap<String, MethodNode> =
6565
node.methods
6666
.filterNot {
6767
(AccessDescriptor(it.access).isSynthetic() ||
@@ -70,17 +70,14 @@ class ClassInfo(val _node: ClassNode, val _classNodes: Map<String, ClassNode>) {
7070
}
7171
.filterNot { UtilityClass.isObfuscatedSymbol(it.name) }
7272
.associate { method -> "${method.name}-${method.desc}" to method }
73+
as MutableMap<String, MethodNode>
7374

7475
if (node.superName != null) {
75-
result =
76-
(result + getAllNonStaticMethods(classNodes.get(node.superName), classNodes))
77-
as MutableMap<String, MethodNode>
76+
result.putAll(getAllNonStaticMethods(classNodes.get(node.superName), classNodes))
7877
}
7978
if (node.interfaces != null) {
8079
for (interfaceName in node.interfaces) {
81-
result =
82-
(result + getAllNonStaticMethods(classNodes.get(interfaceName), classNodes))
83-
as MutableMap<String, MethodNode>
80+
result.putAll(getAllNonStaticMethods(classNodes.get(interfaceName), classNodes))
8481
}
8582
}
8683
methodsCache.put(node.name, result)

buildSrc/src/main/java/com/google/firebase/gradle/plugins/semver/Delta.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
package com.google.firebase.gradle.plugins.semver
1616

1717
/** Encapsulation of a change between two APIs. */
18-
class Delta(
18+
data class Delta(
1919
val className: String,
2020
val memberName: String,
2121
val description: String,

0 commit comments

Comments
 (0)