Skip to content

Commit d1406f7

Browse files
authored
codewhisperer: remove build requirement (#4025)
* fix(codewhisperer): remove build requirement for java * add test case
1 parent dd01382 commit d1406f7

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "CodeWhisperer: Security scans for Java no longer require build artifacts"
4+
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/sessionconfig/JavaCodeScanSessionConfig.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import software.aws.toolkits.core.utils.debug
1616
import software.aws.toolkits.core.utils.error
1717
import software.aws.toolkits.core.utils.exists
1818
import software.aws.toolkits.core.utils.getLogger
19-
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.cannotFindBuildArtifacts
2019
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.fileTooLarge
2120
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.JAVA_CODE_SCAN_TIMEOUT_IN_SECONDS
2221
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.JAVA_PAYLOAD_LIMIT_IN_BYTES
@@ -56,21 +55,18 @@ internal class JavaCodeScanSessionConfig(
5655
// Include all the dependencies using BFS
5756
val (sourceFiles, srcPayloadSize, totalLines, buildPaths) = includeDependencies()
5857

59-
var noClassFilesFound = true
6058
val outputPaths = CompilerPaths.getOutputPaths(ModuleManager.getInstance(project).modules)
6159
var totalBuildPayloadSize = 0L
6260
val buildFiles = buildPaths.mapNotNull { relativePath ->
6361
val classFile = findClassFile(relativePath, outputPaths)
6462
if (classFile == null) {
6563
LOG.debug { "Cannot find class file for $relativePath" }
6664
} else {
67-
noClassFilesFound = false
6865
totalBuildPayloadSize += classFile.toFile().length()
6966
}
7067
classFile
7168
}
7269
LOG.debug { "Total build files sent in payload: ${buildFiles.size}" }
73-
if (noClassFilesFound) cannotFindBuildArtifacts()
7470

7571
// Copy all the included source and build files to the source zip
7672
val srcZip = zipFiles(sourceFiles.mapNotNull { getPath(it) } + buildFiles)

jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererJavaCodeScanTest.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ import kotlinx.coroutines.runBlocking
2121
import org.assertj.core.api.Assertions.assertThat
2222
import org.junit.Before
2323
import org.junit.Test
24+
import org.junit.jupiter.api.assertDoesNotThrow
2425
import org.junit.jupiter.api.assertThrows
2526
import org.mockito.kotlin.any
2627
import org.mockito.kotlin.spy
2728
import org.mockito.kotlin.stub
2829
import software.aws.toolkits.jetbrains.core.compileProjectAndWait
2930
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.sessionconfig.CodeScanSessionConfig
3031
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.sessionconfig.JavaCodeScanSessionConfig
32+
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.sessionconfig.PayloadMetadata
3133
import software.aws.toolkits.jetbrains.utils.rules.HeavyJavaCodeInsightTestFixtureRule
3234
import software.aws.toolkits.jetbrains.utils.rules.addClass
3335
import software.aws.toolkits.jetbrains.utils.rules.addModule
@@ -153,6 +155,17 @@ class CodeWhispererJavaCodeScanTest : CodeWhispererCodeScanTestBase(HeavyJavaCod
153155
assertThat(filesInZip).isEqualTo(4)
154156
}
155157

158+
@Test
159+
fun `create payload with no build files does not throw exception`() {
160+
sessionConfigSpy.stub {
161+
onGeneric { includeDependencies() }.thenReturn(PayloadMetadata(emptySet(), 0, 0, emptySet()))
162+
}
163+
assertDoesNotThrow {
164+
val payload = sessionConfigSpy.createPayload()
165+
assertThat(payload.context.buildPayloadSize).isEqualTo(0)
166+
}
167+
}
168+
156169
@Test
157170
fun `e2e happy path integration test`() {
158171
assertE2ERunsSuccessfully(sessionConfigSpy, project, totalLines, 3, totalSize, 2)

0 commit comments

Comments
 (0)