[CORDA-2851] - Fix the way serialization whitelist is calculated for CordappImpl (#4743)

This commit is contained in:
Dimos Raptis 2019-04-11 11:53:13 +01:00 committed by Shams Asari
parent e61a8424da
commit a38891fc44
2 changed files with 14 additions and 2 deletions

View File

@ -41,7 +41,7 @@ data class CordappImpl(
// TODO: Also add [SchedulableFlow] as a Cordapp class
override val cordappClasses: List<String> = run {
val classList = rpcFlows + initiatedFlows + services + serializationWhitelists.map { javaClass } + notaryService
val classList = rpcFlows + initiatedFlows + services + serializationWhitelists.flatMap { it.whitelist } + notaryService
classList.mapNotNull { it?.name } + contractClassNames + explicitCordappClasses
}

View File

@ -65,6 +65,18 @@ class JarScanningCordappLoaderTest {
assertThat(actualCordapp.jarPath).isEqualTo(isolatedJAR)
}
@Test
fun `constructed CordappImpl contains the right cordapp classes`() {
val isolatedJAR = JarScanningCordappLoaderTest::class.java.getResource("/isolated.jar")
val loader = JarScanningCordappLoader.fromJarUrls(listOf(isolatedJAR))
val actualCordapp = loader.cordapps.single()
val cordappClasses = actualCordapp.cordappClasses
assertThat(cordappClasses).contains(isolatedFlowName)
val serializationWhitelistedClasses = actualCordapp.serializationWhitelists.flatMap { it.whitelist }.map { it.name }
assertThat(cordappClasses).containsAll(serializationWhitelistedClasses)
}
@Test
fun `flows are loaded by loader`() {
val jarFile = cordappWithPackages(javaClass.packageName).jarFile
@ -117,7 +129,7 @@ class JarScanningCordappLoaderTest {
val jar = JarScanningCordappLoaderTest::class.java.getResource("versions/min-2-no-target.jar")!!
val loader = JarScanningCordappLoader.fromJarUrls(listOf(jar), VersionInfo.UNKNOWN)
// exclude the core cordapp
val cordapp = loader.cordapps.single { it.cordappClasses.contains("net.corda.core.internal.cordapp.CordappImpl") }
val cordapp = loader.cordapps.first()
assertThat(cordapp.targetPlatformVersion).isEqualTo(2)
assertThat(cordapp.minimumPlatformVersion).isEqualTo(2)
}