mirror of
https://github.com/corda/corda.git
synced 2025-04-07 11:27:01 +00:00
[CORDA-2851] - Fix the way serialization whitelist is calculated for CordappImpl (#4743)
This commit is contained in:
parent
e61a8424da
commit
a38891fc44
@ -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
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user