Skip to content

Commit 83d4e71

Browse files
committed
Encode package information into the atplug files, which lets us simplify a little bit.
1 parent c01b2e6 commit 83d4e71

File tree

1 file changed

+10
-16
lines changed
  • atplug-plugin-gradle/src/main/java/com/diffplug/atplug/tooling/gradle

1 file changed

+10
-16
lines changed

atplug-plugin-gradle/src/main/java/com/diffplug/atplug/tooling/gradle/FindPlugsTask.kt

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,42 +41,36 @@ abstract class FindPlugsTask : DefaultTask() {
4141
when (change.changeType) {
4242
ChangeType.REMOVED -> {
4343
// Remove old discovered data for this file
44-
removeOldMetadata(change.file)
44+
removeOldMetadata(change)
4545
}
4646
ChangeType.ADDED,
4747
ChangeType.MODIFIED -> {
48-
parseAndWriteMetadata(parser, change.file)
48+
parseAndWriteMetadata(parser, change, change.file)
4949
}
5050
}
5151
}
5252
}
5353

54-
private fun parseAndWriteMetadata(parser: PlugParser, classFile: File) {
54+
private fun parseAndWriteMetadata(parser: PlugParser, change: FileChange, classFile: File) {
5555
val plugToSocket = parser.parse(classFile)
5656
if (plugToSocket != null) {
5757
// For example: write a single line containing the discovered plug FQN
58-
val discoveredFile = discoveredPlugsDir.file(classFile.nameWithoutExtension).get().asFile
59-
if (discoveredFile.exists()) {
60-
val existing = discoveredFile.readText().split("|")
61-
check(existing[0] == plugToSocket.first) {
62-
"You need to rename one of these plugs because they have the same classfile name: ${existing[0]} and $plugToSocket"
63-
}
64-
} else {
65-
discoveredFile.parentFile.mkdirs()
66-
}
58+
val discoveredFile = discoveredPlugsDir.file(normalizePath(change)).get().asFile
6759
discoveredFile.writeText(plugToSocket.let { "${it.first}|${it.second}" })
6860
} else {
6961
// If previously discovered, remove it
70-
removeOldMetadata(classFile)
62+
removeOldMetadata(change)
7163
}
7264
}
7365

74-
private fun removeOldMetadata(classFile: File) {
66+
private fun removeOldMetadata(change: FileChange) {
7567
// Remove any discovered file for the old .class
76-
val possibleName = classFile.nameWithoutExtension
77-
val discoveredFile = discoveredPlugsDir.file(possibleName).get().asFile
68+
val discoveredFile = discoveredPlugsDir.file(normalizePath(change)).get().asFile
7869
if (discoveredFile.exists()) {
7970
discoveredFile.delete()
8071
}
8172
}
73+
74+
private fun normalizePath(change: FileChange) =
75+
change.normalizedPath.removeSuffix(".class").replace("/", "_")
8276
}

0 commit comments

Comments
 (0)