@@ -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