mirror of
https://github.com/corda/corda.git
synced 2025-01-30 16:14:39 +00:00
CORDA-2128: Moved reference to internal NotaryService class out of public API (#4389)
This commit is contained in:
parent
feae71e401
commit
426db6c2f2
@ -4,7 +4,6 @@ import net.corda.core.DeleteForDJVM
|
|||||||
import net.corda.core.DoNotImplement
|
import net.corda.core.DoNotImplement
|
||||||
import net.corda.core.crypto.SecureHash
|
import net.corda.core.crypto.SecureHash
|
||||||
import net.corda.core.flows.FlowLogic
|
import net.corda.core.flows.FlowLogic
|
||||||
import net.corda.core.internal.notary.NotaryService
|
|
||||||
import net.corda.core.schemas.MappedSchema
|
import net.corda.core.schemas.MappedSchema
|
||||||
import net.corda.core.serialization.SerializationCustomSerializer
|
import net.corda.core.serialization.SerializationCustomSerializer
|
||||||
import net.corda.core.serialization.SerializationWhitelist
|
import net.corda.core.serialization.SerializationWhitelist
|
||||||
@ -49,5 +48,4 @@ interface Cordapp {
|
|||||||
val jarPath: URL
|
val jarPath: URL
|
||||||
val cordappClasses: List<String>
|
val cordappClasses: List<String>
|
||||||
val jarHash: SecureHash.SHA256
|
val jarHash: SecureHash.SHA256
|
||||||
val notaryService: Class<out NotaryService>?
|
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ data class CordappImpl(
|
|||||||
override val jarPath: URL,
|
override val jarPath: URL,
|
||||||
val info: Info,
|
val info: Info,
|
||||||
override val jarHash: SecureHash.SHA256,
|
override val jarHash: SecureHash.SHA256,
|
||||||
override val notaryService: Class<out NotaryService>? = null,
|
val notaryService: Class<out NotaryService>?,
|
||||||
/** Indicates whether the CorDapp is loaded from external sources, or generated on node startup (virtual). */
|
/** Indicates whether the CorDapp is loaded from external sources, or generated on node startup (virtual). */
|
||||||
val isLoaded: Boolean = true) : Cordapp {
|
val isLoaded: Boolean = true) : Cordapp {
|
||||||
override val name: String = jarName(jarPath)
|
override val name: String = jarName(jarPath)
|
||||||
|
@ -22,7 +22,13 @@ class MockCordappProvider(
|
|||||||
|
|
||||||
private val cordappRegistry = mutableListOf<Pair<Cordapp, AttachmentId>>()
|
private val cordappRegistry = mutableListOf<Pair<Cordapp, AttachmentId>>()
|
||||||
|
|
||||||
fun addMockCordapp(contractClassName: ContractClassName, attachments: MockAttachmentStorage, contractHash: AttachmentId? = null, signers: List<PublicKey> = emptyList(), jarManifestAttributes: Map<String,String> = emptyMap()): AttachmentId {
|
fun addMockCordapp(
|
||||||
|
contractClassName: ContractClassName,
|
||||||
|
attachments: MockAttachmentStorage,
|
||||||
|
contractHash: AttachmentId? = null,
|
||||||
|
signers: List<PublicKey> = emptyList(),
|
||||||
|
jarManifestAttributes: Map<String,String> = emptyMap()
|
||||||
|
): AttachmentId {
|
||||||
val cordapp = CordappImpl(
|
val cordapp = CordappImpl(
|
||||||
contractClassNames = listOf(contractClassName),
|
contractClassNames = listOf(contractClassName),
|
||||||
initiatedFlows = emptyList(),
|
initiatedFlows = emptyList(),
|
||||||
@ -36,20 +42,39 @@ class MockCordappProvider(
|
|||||||
jarPath = Paths.get("").toUri().toURL(),
|
jarPath = Paths.get("").toUri().toURL(),
|
||||||
info = CordappImpl.Info.UNKNOWN,
|
info = CordappImpl.Info.UNKNOWN,
|
||||||
allFlows = emptyList(),
|
allFlows = emptyList(),
|
||||||
jarHash = SecureHash.allOnesHash)
|
jarHash = SecureHash.allOnesHash,
|
||||||
|
notaryService = null
|
||||||
|
)
|
||||||
val jarManifestAttributesWithObligatoryElement = jarManifestAttributes.toMutableMap()
|
val jarManifestAttributesWithObligatoryElement = jarManifestAttributes.toMutableMap()
|
||||||
jarManifestAttributesWithObligatoryElement.putIfAbsent(Attributes.Name.MANIFEST_VERSION.toString(), "1.0")
|
jarManifestAttributesWithObligatoryElement.putIfAbsent(Attributes.Name.MANIFEST_VERSION.toString(), "1.0")
|
||||||
if (cordappRegistry.none { it.first.contractClassNames.contains(contractClassName) && it.second == contractHash }) {
|
if (cordappRegistry.none { it.first.contractClassNames.contains(contractClassName) && it.second == contractHash }) {
|
||||||
cordappRegistry.add(Pair(cordapp, findOrImportAttachment(listOf(contractClassName), fakeAttachmentCached(contractClassName, jarManifestAttributesWithObligatoryElement), attachments, contractHash, signers)))
|
cordappRegistry.add(Pair(
|
||||||
|
cordapp,
|
||||||
|
findOrImportAttachment(
|
||||||
|
listOf(contractClassName),
|
||||||
|
fakeAttachmentCached(contractClassName, jarManifestAttributesWithObligatoryElement),
|
||||||
|
attachments,
|
||||||
|
contractHash,
|
||||||
|
signers
|
||||||
|
)
|
||||||
|
))
|
||||||
}
|
}
|
||||||
return cordappRegistry.findLast { contractClassName in it.first.contractClassNames }?.second!!
|
return cordappRegistry.findLast { contractClassName in it.first.contractClassNames }?.second!!
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getContractAttachmentID(contractClassName: ContractClassName): AttachmentId? = cordappRegistry.find { it.first.contractClassNames.contains(contractClassName) }?.second
|
override fun getContractAttachmentID(contractClassName: ContractClassName): AttachmentId? {
|
||||||
|
return cordappRegistry.find { it.first.contractClassNames.contains(contractClassName) }?.second
|
||||||
?: super.getContractAttachmentID(contractClassName)
|
?: super.getContractAttachmentID(contractClassName)
|
||||||
|
}
|
||||||
|
|
||||||
private fun findOrImportAttachment(contractClassNames: List<ContractClassName>, data: ByteArray, attachments: MockAttachmentStorage, contractHash: AttachmentId?, signers: List<PublicKey>): AttachmentId {
|
private fun findOrImportAttachment(
|
||||||
val existingAttachment = attachments.files.filter { (attachmentId, content) ->
|
contractClassNames: List<ContractClassName>,
|
||||||
|
data: ByteArray,
|
||||||
|
attachments: MockAttachmentStorage,
|
||||||
|
contractHash: AttachmentId?,
|
||||||
|
signers: List<PublicKey>
|
||||||
|
): AttachmentId {
|
||||||
|
val existingAttachment = attachments.files.filter { (attachmentId, _) ->
|
||||||
contractHash == attachmentId
|
contractHash == attachmentId
|
||||||
}
|
}
|
||||||
return if (!existingAttachment.isEmpty()) {
|
return if (!existingAttachment.isEmpty()) {
|
||||||
@ -60,7 +85,9 @@ class MockCordappProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val attachmentsCache = mutableMapOf<String, ByteArray>()
|
private val attachmentsCache = mutableMapOf<String, ByteArray>()
|
||||||
private fun fakeAttachmentCached(contractClass: String, manifestAttributes: Map<String,String> = emptyMap()): ByteArray = attachmentsCache.computeIfAbsent(contractClass + manifestAttributes.toSortedMap()) {
|
private fun fakeAttachmentCached(contractClass: String, manifestAttributes: Map<String,String> = emptyMap()): ByteArray {
|
||||||
|
return attachmentsCache.computeIfAbsent(contractClass + manifestAttributes.toSortedMap()) {
|
||||||
fakeAttachment(contractClass, contractClass, manifestAttributes)
|
fakeAttachment(contractClass, contractClass, manifestAttributes)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user