From 561a329064a98d415e5a1fdceb9c581ba1019302 Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Mon, 17 Jul 2017 20:24:50 +0100 Subject: [PATCH] Moved the various extension methods for creating Durations from Utils.kt to KotlinUtils.kt --- .../client/jfx/model/NodeMonitorModel.kt | 2 +- .../net/corda/client/rpc/RPCStabilityTests.kt | 4 +- .../corda/client/rpc/internal/RPCClient.kt | 4 +- .../kotlin/rpc/StandaloneCordaRPClientTest.kt | 2 +- .../corda/client/rpc/RPCConcurrencyTests.kt | 2 +- .../corda/client/rpc/RPCPerformanceTests.kt | 5 +-- core/src/main/kotlin/net/corda/core/Utils.kt | 8 ---- .../net/corda/core/crypto/X509Utilities.kt | 4 +- .../core/node/services/TimeWindowChecker.kt | 2 +- .../net/corda/core/utilities/KotlinUtils.kt | 37 +++++++++++++++++++ .../node/services/TimeWindowCheckerTests.kt | 2 +- .../TransactionSerializationTests.kt | 2 +- .../kotlin/net/corda/docs/FlowCookbook.kt | 8 ++-- .../docs/WorkflowTransactionBuildTutorial.kt | 6 +-- .../net/corda/contracts/asset/Obligation.kt | 8 ++-- .../net/corda/flows/TwoPartyDealFlow.kt | 2 +- .../net/corda/flows/TwoPartyTradeFlow.kt | 2 +- .../corda/contracts/CommercialPaperTests.kt | 4 +- .../corda/contracts/asset/ObligationTests.kt | 10 ++--- .../net/corda/node/NodePerformanceTests.kt | 2 +- .../services/messaging/P2PMessagingTest.kt | 1 + .../services/messaging/P2PSecurityTest.kt | 2 +- .../kotlin/net/corda/node/internal/Node.kt | 6 +-- .../net/corda/node/services/keys/KMSUtils.kt | 6 +-- .../messaging/ArtemisMessagingServer.kt | 4 +- .../node/services/messaging/RPCServer.kt | 2 +- .../registration/NetworkRegistrationHelper.kt | 2 +- .../node/messaging/TwoPartyTradeFlowTests.kt | 2 +- .../corda/node/services/NotaryChangeTests.kt | 2 +- .../events/NodeSchedulerServiceTest.kt | 2 +- .../transactions/NotaryServiceTests.kt | 2 +- .../node/services/vault/VaultQueryTests.kt | 4 +- .../corda/node/utilities/ClockUtilsTest.kt | 36 +++++++++--------- .../net/corda/node/utilities/FiberBoxTest.kt | 20 +++++----- .../kotlin/net/corda/irs/IRSDemoTest.kt | 10 ++--- .../kotlin/net/corda/irs/flows/FixingFlow.kt | 2 +- .../net/corda/irs/utilities/OracleUtils.kt | 8 +++- .../kotlin/net/corda/irs/contract/IRSTests.kt | 2 +- .../net/corda/vega/flows/StateRevisionFlow.kt | 2 +- .../net/corda/traderdemo/TraderDemoTest.kt | 2 +- .../net/corda/traderdemo/flow/SellerFlow.kt | 4 +- .../testing/TransactionDSLInterpreter.kt | 2 +- .../net/corda/demobench/web/WebServer.kt | 2 +- 43 files changed, 136 insertions(+), 105 deletions(-) diff --git a/client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt b/client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt index e2b134bc8c..944c49643c 100644 --- a/client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt +++ b/client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt @@ -10,7 +10,7 @@ import net.corda.core.messaging.StateMachineTransactionMapping import net.corda.core.messaging.StateMachineUpdate import net.corda.core.node.services.NetworkMapCache.MapChange import net.corda.core.node.services.Vault -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.core.utilities.NetworkHostAndPort import rx.Observable diff --git a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt index ac524995c7..bf20920824 100644 --- a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt +++ b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt @@ -12,8 +12,8 @@ import net.corda.core.crypto.random63BitValue import net.corda.core.future import net.corda.core.getOrThrow import net.corda.core.messaging.RPCOps -import net.corda.core.millis -import net.corda.core.seconds +import net.corda.core.utilities.millis +import net.corda.core.utilities.seconds import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.Try import net.corda.node.services.messaging.RPCServerConfiguration diff --git a/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClient.kt b/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClient.kt index a792c24faa..059f5d2be7 100644 --- a/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClient.kt +++ b/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClient.kt @@ -2,9 +2,9 @@ package net.corda.client.rpc.internal import net.corda.core.logElapsedTime import net.corda.core.messaging.RPCOps -import net.corda.core.minutes +import net.corda.core.utilities.minutes import net.corda.core.crypto.random63BitValue -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.loggerFor import net.corda.nodeapi.ArtemisTcpTransport.Companion.tcpTransport diff --git a/client/rpc/src/smoke-test/kotlin/net/corda/kotlin/rpc/StandaloneCordaRPClientTest.kt b/client/rpc/src/smoke-test/kotlin/net/corda/kotlin/rpc/StandaloneCordaRPClientTest.kt index 429d1fd169..b8dfe87614 100644 --- a/client/rpc/src/smoke-test/kotlin/net/corda/kotlin/rpc/StandaloneCordaRPClientTest.kt +++ b/client/rpc/src/smoke-test/kotlin/net/corda/kotlin/rpc/StandaloneCordaRPClientTest.kt @@ -13,7 +13,7 @@ import net.corda.core.messaging.* import net.corda.core.node.NodeInfo import net.corda.core.node.services.Vault import net.corda.core.node.services.vault.* -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.utilities.OpaqueBytes import net.corda.core.utilities.loggerFor import net.corda.flows.CashIssueFlow diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt index fb283773d1..f146014a76 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt @@ -3,7 +3,7 @@ package net.corda.client.rpc import net.corda.client.rpc.internal.RPCClientConfiguration import net.corda.core.future import net.corda.core.messaging.RPCOps -import net.corda.core.millis +import net.corda.core.utilities.millis import net.corda.core.crypto.random63BitValue import net.corda.core.serialization.CordaSerializable import net.corda.node.services.messaging.RPCServerConfiguration diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt index 362f001232..5684d53ca6 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt @@ -3,12 +3,11 @@ package net.corda.client.rpc import com.google.common.base.Stopwatch import net.corda.client.rpc.internal.RPCClientConfiguration import net.corda.core.messaging.RPCOps -import net.corda.core.minutes -import net.corda.core.seconds +import net.corda.core.utilities.minutes +import net.corda.core.utilities.seconds import net.corda.core.utilities.div import net.corda.node.services.messaging.RPCServerConfiguration import net.corda.testing.RPCDriverExposedDSLInterface -import net.corda.testing.driver.ShutdownManager import net.corda.testing.measure import net.corda.testing.performance.startPublishingFixedRateInjector import net.corda.testing.performance.startReporter diff --git a/core/src/main/kotlin/net/corda/core/Utils.kt b/core/src/main/kotlin/net/corda/core/Utils.kt index 3ee55d50ba..36a70a937f 100644 --- a/core/src/main/kotlin/net/corda/core/Utils.kt +++ b/core/src/main/kotlin/net/corda/core/Utils.kt @@ -36,14 +36,6 @@ import java.util.zip.ZipOutputStream import kotlin.concurrent.withLock import kotlin.reflect.KClass -val Int.days: Duration get() = Duration.ofDays(this.toLong()) -@Suppress("unused") // It's here for completeness -val Int.hours: Duration get() = Duration.ofHours(this.toLong()) -val Int.minutes: Duration get() = Duration.ofMinutes(this.toLong()) -val Int.seconds: Duration get() = Duration.ofSeconds(this.toLong()) -val Int.millis: Duration get() = Duration.ofMillis(this.toLong()) - - // TODO: Review by EOY2016 if we ever found these utilities helpful. val Int.bd: BigDecimal get() = BigDecimal(this) val Double.bd: BigDecimal get() = BigDecimal(this) diff --git a/core/src/main/kotlin/net/corda/core/crypto/X509Utilities.kt b/core/src/main/kotlin/net/corda/core/crypto/X509Utilities.kt index ec20ada436..db7717aa33 100644 --- a/core/src/main/kotlin/net/corda/core/crypto/X509Utilities.kt +++ b/core/src/main/kotlin/net/corda/core/crypto/X509Utilities.kt @@ -1,5 +1,7 @@ package net.corda.core.crypto +import net.corda.core.utilities.days +import net.corda.core.utilities.millis import org.bouncycastle.asn1.ASN1Encodable import org.bouncycastle.asn1.x500.X500Name import org.bouncycastle.asn1.x500.X500NameBuilder @@ -33,7 +35,7 @@ object X509Utilities { val CORDA_CLIENT_TLS = "cordaclienttls" val CORDA_CLIENT_CA = "cordaclientca" - private val DEFAULT_VALIDITY_WINDOW = Pair(Duration.ofMillis(0), Duration.ofDays(365 * 10)) + private val DEFAULT_VALIDITY_WINDOW = Pair(0.millis, 3650.days) /** * Helper function to return the latest out of an instant and an optional date. */ diff --git a/core/src/main/kotlin/net/corda/core/node/services/TimeWindowChecker.kt b/core/src/main/kotlin/net/corda/core/node/services/TimeWindowChecker.kt index b06ee522af..771a821ce4 100644 --- a/core/src/main/kotlin/net/corda/core/node/services/TimeWindowChecker.kt +++ b/core/src/main/kotlin/net/corda/core/node/services/TimeWindowChecker.kt @@ -1,7 +1,7 @@ package net.corda.core.node.services import net.corda.core.contracts.TimeWindow -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.until import java.time.Clock import java.time.Duration diff --git a/core/src/main/kotlin/net/corda/core/utilities/KotlinUtils.kt b/core/src/main/kotlin/net/corda/core/utilities/KotlinUtils.kt index 6df50156d3..3d55db4c9c 100644 --- a/core/src/main/kotlin/net/corda/core/utilities/KotlinUtils.kt +++ b/core/src/main/kotlin/net/corda/core/utilities/KotlinUtils.kt @@ -3,8 +3,15 @@ package net.corda.core.utilities import net.corda.core.serialization.CordaSerializable import org.slf4j.Logger import org.slf4j.LoggerFactory +import java.time.Duration import kotlin.reflect.KProperty +// +// READ ME FIRST: +// This is a collection of public utilities useful only for Kotlin code. If you're looking to add a public utility that +// is also relevant to Java then put it in Utils.kt. +// + /** * Get the [Logger] for a class using the syntax * @@ -22,6 +29,36 @@ inline fun Logger.debug(msg: () -> String) { if (isDebugEnabled) debug(msg()) } +/** + * Extension method for easier construction of [Duration]s in terms of integer days: `val twoDays = 2.days`. + * @see Duration.ofDays + */ +inline val Int.days: Duration get() = Duration.ofDays(toLong()) + +/** + * Extension method for easier construction of [Duration]s in terms of integer hours: `val twoHours = 2.hours`. + * @see Duration.ofHours + */ +inline val Int.hours: Duration get() = Duration.ofHours(toLong()) + +/** + * Extension method for easier construction of [Duration]s in terms of integer minutes: `val twoMinutes = 2.minutes`. + * @see Duration.ofMinutes + */ +inline val Int.minutes: Duration get() = Duration.ofMinutes(toLong()) + +/** + * Extension method for easier construction of [Duration]s in terms of integer seconds: `val twoSeconds = 2.seconds`. + * @see Duration.ofSeconds + */ +inline val Int.seconds: Duration get() = Duration.ofSeconds(toLong()) + +/** + * Extension method for easier construction of [Duration]s in terms of integer milliseconds: `val twoMillis = 2.millis`. + * @see Duration.ofMillis + */ +inline val Int.millis: Duration get() = Duration.ofMillis(toLong()) + /** * A simple wrapper that enables the use of Kotlin's `val x by transient { ... }` syntax. Such a property * will not be serialized, and if it's missing (or the first time it's accessed), the initializer will be diff --git a/core/src/test/kotlin/net/corda/core/node/services/TimeWindowCheckerTests.kt b/core/src/test/kotlin/net/corda/core/node/services/TimeWindowCheckerTests.kt index 9b174d6b41..3b18f549b2 100644 --- a/core/src/test/kotlin/net/corda/core/node/services/TimeWindowCheckerTests.kt +++ b/core/src/test/kotlin/net/corda/core/node/services/TimeWindowCheckerTests.kt @@ -1,7 +1,7 @@ package net.corda.core.node.services import net.corda.core.contracts.TimeWindow -import net.corda.core.seconds +import net.corda.core.utilities.seconds import org.junit.Test import java.time.Clock import java.time.Instant diff --git a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt index 9456e8f21f..5ac91f2695 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt @@ -3,7 +3,7 @@ package net.corda.core.serialization import net.corda.core.contracts.* import net.corda.core.crypto.SecureHash import net.corda.core.identity.AbstractParty -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.TransactionBuilder import net.corda.testing.* import net.corda.testing.node.MockServices diff --git a/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt b/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt index 6640084b68..bd6eb2a93d 100644 --- a/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt +++ b/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt @@ -20,13 +20,13 @@ import net.corda.core.transactions.WireTransaction import net.corda.core.utilities.ProgressTracker import net.corda.core.utilities.ProgressTracker.Step import net.corda.core.utilities.UntrustworthyData +import net.corda.core.utilities.seconds import net.corda.core.utilities.unwrap import net.corda.testing.DUMMY_PUBKEY_1 import net.corda.testing.contracts.DummyContract import net.corda.testing.contracts.DummyState import org.bouncycastle.asn1.x500.X500Name import java.security.PublicKey -import java.time.Duration import java.time.Instant // We group our two flows inside a singleton object to indicate that they work @@ -280,11 +280,11 @@ object FlowCookbook { // We can also define a time window as an ``Instant`` +/- a time // tolerance (e.g. 30 seconds): // DOCSTART 42 - val ourTimeWindow2: TimeWindow = TimeWindow.withTolerance(Instant.now(), Duration.ofSeconds(30)) + val ourTimeWindow2: TimeWindow = TimeWindow.withTolerance(Instant.now(), 30.seconds) // DOCEND 42 // Or as a start-time plus a duration: // DOCSTART 43 - val ourTimeWindow3: TimeWindow = TimeWindow.fromStartAndDuration(Instant.now(), Duration.ofSeconds(30)) + val ourTimeWindow3: TimeWindow = TimeWindow.fromStartAndDuration(Instant.now(), 30.seconds) // DOCEND 43 /**----------------------- @@ -326,7 +326,7 @@ object FlowCookbook { // DOCEND 44 // Or as a start time plus a duration (e.g. 45 seconds): // DOCSTART 45 - regTxBuilder.setTimeWindow(serviceHub.clock.instant(), Duration.ofSeconds(45)) + regTxBuilder.setTimeWindow(serviceHub.clock.instant(), 45.seconds) // DOCEND 45 /**---------------------- diff --git a/docs/source/example-code/src/main/kotlin/net/corda/docs/WorkflowTransactionBuildTutorial.kt b/docs/source/example-code/src/main/kotlin/net/corda/docs/WorkflowTransactionBuildTutorial.kt index a19e6f7645..16a226e4ea 100644 --- a/docs/source/example-code/src/main/kotlin/net/corda/docs/WorkflowTransactionBuildTutorial.kt +++ b/docs/source/example-code/src/main/kotlin/net/corda/docs/WorkflowTransactionBuildTutorial.kt @@ -15,9 +15,9 @@ import net.corda.core.node.ServiceHub import net.corda.core.node.services.linearHeadsOfType import net.corda.core.serialization.CordaSerializable import net.corda.core.transactions.SignedTransaction +import net.corda.core.utilities.seconds import net.corda.core.utilities.unwrap import java.security.PublicKey -import java.time.Duration // DOCSTART 1 // Helper method to locate the latest Vault version of a LinearState from a possibly out of date StateRef @@ -123,7 +123,7 @@ class SubmitTradeApprovalFlow(val tradeId: String, // Create the TransactionBuilder and populate with the new state. val tx = TransactionType.General.Builder(notary) .withItems(tradeProposal, Command(TradeApprovalContract.Commands.Issue(), listOf(tradeProposal.source.owningKey))) - tx.setTimeWindow(serviceHub.clock.instant(), Duration.ofSeconds(60)) + tx.setTimeWindow(serviceHub.clock.instant(), 60.seconds) // We can automatically sign as there is no untrusted data. val signedTx = serviceHub.signInitialTransaction(tx) // Notarise and distribute. @@ -184,7 +184,7 @@ class SubmitCompletionFlow(val ref: StateRef, val verdict: WorkflowState) : Flow newState, Command(TradeApprovalContract.Commands.Completed(), listOf(serviceHub.myInfo.legalIdentity.owningKey, latestRecord.state.data.source.owningKey))) - tx.setTimeWindow(serviceHub.clock.instant(), Duration.ofSeconds(60)) + tx.setTimeWindow(serviceHub.clock.instant(), 60.seconds) // We can sign this transaction immediately as we have already checked all the fields and the decision // is ultimately a manual one from the caller. // As a SignedTransaction we can pass the data around certain that it cannot be modified, diff --git a/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt b/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt index dbc7cf54dc..9399aeba7a 100644 --- a/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt +++ b/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt @@ -10,15 +10,15 @@ import net.corda.core.contracts.* import net.corda.core.contracts.clauses.* import net.corda.core.crypto.SecureHash import net.corda.core.crypto.entropyToKeyPair -import net.corda.core.crypto.testing.NULL_PARTY +import net.corda.core.crypto.random63BitValue import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party -import net.corda.core.crypto.random63BitValue import net.corda.core.serialization.CordaSerializable import net.corda.core.transactions.TransactionBuilder import net.corda.core.utilities.Emoji import net.corda.core.utilities.NonEmptySet +import net.corda.core.utilities.seconds import org.bouncycastle.asn1.x500.X500Name import java.math.BigInteger import java.security.PublicKey @@ -202,7 +202,7 @@ class Obligation

: Contract { "amount in settle command ${command.value.amount} matches settled total $totalAmountSettled" using (command.value.amount == totalAmountSettled) "signatures are present from all obligors" using command.signers.containsAll(requiredSigners) "there are no zero sized inputs" using inputs.none { it.amount.quantity == 0L } - "at obligor ${obligor} the obligations after settlement balance" using + "at obligor $obligor the obligations after settlement balance" using (inputAmount == outputAmount + Amount(totalPenniesSettled, groupingKey)) } return setOf(command.value) @@ -264,7 +264,7 @@ class Obligation

: Contract { /** When the contract must be settled by. */ val dueBefore: Instant, - val timeTolerance: Duration = Duration.ofSeconds(30) + val timeTolerance: Duration = 30.seconds ) { val product: P get() = acceptableIssuedProducts.map { it.product }.toSet().single() diff --git a/finance/src/main/kotlin/net/corda/flows/TwoPartyDealFlow.kt b/finance/src/main/kotlin/net/corda/flows/TwoPartyDealFlow.kt index c421a58b57..ad16e4241d 100644 --- a/finance/src/main/kotlin/net/corda/flows/TwoPartyDealFlow.kt +++ b/finance/src/main/kotlin/net/corda/flows/TwoPartyDealFlow.kt @@ -12,7 +12,7 @@ import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party import net.corda.core.node.NodeInfo import net.corda.core.node.services.ServiceType -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.serialization.CordaSerializable import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder diff --git a/finance/src/main/kotlin/net/corda/flows/TwoPartyTradeFlow.kt b/finance/src/main/kotlin/net/corda/flows/TwoPartyTradeFlow.kt index 8d427fd1ef..1290536405 100644 --- a/finance/src/main/kotlin/net/corda/flows/TwoPartyTradeFlow.kt +++ b/finance/src/main/kotlin/net/corda/flows/TwoPartyTradeFlow.kt @@ -8,7 +8,7 @@ import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party import net.corda.core.node.NodeInfo -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.serialization.CordaSerializable import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder diff --git a/finance/src/test/kotlin/net/corda/contracts/CommercialPaperTests.kt b/finance/src/test/kotlin/net/corda/contracts/CommercialPaperTests.kt index e5428add4d..893d8ce3e4 100644 --- a/finance/src/test/kotlin/net/corda/contracts/CommercialPaperTests.kt +++ b/finance/src/test/kotlin/net/corda/contracts/CommercialPaperTests.kt @@ -3,12 +3,12 @@ package net.corda.contracts import net.corda.contracts.asset.* import net.corda.testing.contracts.fillWithSomeTestCash import net.corda.core.contracts.* -import net.corda.core.days +import net.corda.core.utilities.days import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party import net.corda.core.node.services.Vault import net.corda.core.node.services.VaultService -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.node.utilities.configureDatabase import net.corda.testing.* diff --git a/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt b/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt index 131a30036a..aee082b27f 100644 --- a/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt +++ b/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt @@ -6,16 +6,16 @@ import net.corda.contracts.asset.Obligation.Lifecycle import net.corda.core.contracts.* import net.corda.core.crypto.SecureHash import net.corda.core.crypto.testing.NULL_PARTY -import net.corda.core.hours import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.utilities.NonEmptySet import net.corda.core.utilities.OpaqueBytes +import net.corda.core.utilities.days +import net.corda.core.utilities.hours import net.corda.testing.* import net.corda.testing.contracts.DummyState import net.corda.testing.node.MockServices import org.junit.Test -import java.time.Duration import java.time.Instant import java.time.temporal.ChronoUnit import java.util.* @@ -272,7 +272,7 @@ class ObligationTests { @Test fun `generate set lifecycle`() { // We don't actually verify the states, this is just here to make things look sensible - val dueBefore = TEST_TX_TIME - Duration.ofDays(7) + val dueBefore = TEST_TX_TIME - 7.days // Generate a transaction issuing the obligation var tx = TransactionType.General.Builder(null).apply { @@ -534,8 +534,8 @@ class ObligationTests { } // Try defaulting an obligation due in the future - val pastTestTime = TEST_TX_TIME - Duration.ofDays(7) - val futureTestTime = TEST_TX_TIME + Duration.ofDays(7) + val pastTestTime = TEST_TX_TIME - 7.days + val futureTestTime = TEST_TX_TIME + 7.days transaction("Settlement") { input(oneMillionDollars.OBLIGATION between Pair(ALICE, BOB) `at` futureTestTime) output("Alice's defaulted $1,000,000 obligation to Bob") { (oneMillionDollars.OBLIGATION between Pair(ALICE, BOB) `at` futureTestTime).copy(lifecycle = Lifecycle.DEFAULTED) } diff --git a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt b/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt index c22c69ec34..00421c1ce2 100644 --- a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt @@ -7,7 +7,7 @@ import net.corda.core.contracts.DOLLARS import net.corda.core.flows.FlowLogic import net.corda.core.flows.StartableByRPC import net.corda.core.messaging.startFlow -import net.corda.core.minutes +import net.corda.core.utilities.minutes import net.corda.core.node.services.ServiceInfo import net.corda.core.utilities.OpaqueBytes import net.corda.core.utilities.div diff --git a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt index 611e87373e..d357b21cb0 100644 --- a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt +++ b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt @@ -10,6 +10,7 @@ import net.corda.core.node.services.ServiceInfo import net.corda.core.serialization.CordaSerializable import net.corda.core.serialization.deserialize import net.corda.core.serialization.serialize +import net.corda.core.utilities.seconds import net.corda.node.internal.Node import net.corda.node.services.api.DEFAULT_SESSION_ID import net.corda.node.services.messaging.* diff --git a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PSecurityTest.kt b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PSecurityTest.kt index 4aeb1a4e24..07049024b0 100644 --- a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PSecurityTest.kt +++ b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PSecurityTest.kt @@ -6,7 +6,7 @@ import net.corda.core.crypto.cert import net.corda.core.crypto.random63BitValue import net.corda.core.getOrThrow import net.corda.core.node.NodeInfo -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.utilities.NonEmptySet import net.corda.node.internal.NetworkMapInfo import net.corda.node.services.config.configureWithDevSSLCertificate diff --git a/node/src/main/kotlin/net/corda/node/internal/Node.kt b/node/src/main/kotlin/net/corda/node/internal/Node.kt index 1e5c973df5..bdd44c655e 100644 --- a/node/src/main/kotlin/net/corda/node/internal/Node.kt +++ b/node/src/main/kotlin/net/corda/node/internal/Node.kt @@ -8,11 +8,7 @@ import net.corda.core.* import net.corda.core.messaging.RPCOps import net.corda.core.node.ServiceHub import net.corda.core.node.services.ServiceInfo -import net.corda.core.seconds -import net.corda.core.utilities.NetworkHostAndPort -import net.corda.core.utilities.loggerFor -import net.corda.core.utilities.parseNetworkHostAndPort -import net.corda.core.utilities.trace +import net.corda.core.utilities.* import net.corda.node.VersionInfo import net.corda.node.serialization.NodeClock import net.corda.node.services.RPCUserService diff --git a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt index 481e9e8246..54a23918da 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt @@ -4,17 +4,15 @@ import net.corda.core.crypto.* import net.corda.core.identity.AnonymousParty import net.corda.core.identity.PartyAndCertificate import net.corda.core.node.services.IdentityService +import net.corda.core.utilities.days import net.corda.flows.AnonymisedIdentity -import org.bouncycastle.cert.X509CertificateHolder import org.bouncycastle.operator.ContentSigner import java.security.KeyPair import java.security.PublicKey import java.security.Security -import java.security.cert.CertPath import java.security.cert.CertificateFactory import java.security.cert.X509Certificate import java.time.Duration -import java.util.* /** * Generates a new random [KeyPair], adds it to the internal key storage, then generates a corresponding @@ -33,7 +31,7 @@ fun freshCertificate(identityService: IdentityService, issuerSigner: ContentSigner, revocationEnabled: Boolean = false): AnonymisedIdentity { val issuerCertificate = issuer.certificate - val window = X509Utilities.getCertificateValidityWindow(Duration.ZERO, Duration.ofDays(10 * 365), issuerCertificate) + val window = X509Utilities.getCertificateValidityWindow(Duration.ZERO, 3650.days, issuerCertificate) val ourCertificate = Crypto.createCertificate(CertificateType.IDENTITY, issuerCertificate.subject, issuerSigner, issuer.name, subjectPublicKey, window) val certFactory = CertificateFactory.getInstance("X509") val ourCertPath = certFactory.generateCertPath(listOf(ourCertificate.cert) + issuer.certPath.certificates) diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt index e84db12439..221460f952 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt @@ -11,9 +11,7 @@ import net.corda.core.internal.div import net.corda.core.node.NodeInfo import net.corda.core.node.services.NetworkMapCache import net.corda.core.node.services.NetworkMapCache.MapChange -import net.corda.core.utilities.NetworkHostAndPort -import net.corda.core.utilities.debug -import net.corda.core.utilities.loggerFor +import net.corda.core.utilities.* import net.corda.node.internal.Node import net.corda.node.services.RPCUserService import net.corda.node.services.config.NodeConfiguration diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt index 71ee340dbb..8548520ba7 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt @@ -14,7 +14,7 @@ import com.google.common.collect.SetMultimap import com.google.common.util.concurrent.ThreadFactoryBuilder import net.corda.core.crypto.random63BitValue import net.corda.core.messaging.RPCOps -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.serialization.KryoPoolWithContext import net.corda.core.utilities.* import net.corda.node.services.RPCUserService diff --git a/node/src/main/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelper.kt b/node/src/main/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelper.kt index f9942475fc..55ea786b23 100644 --- a/node/src/main/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelper.kt +++ b/node/src/main/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelper.kt @@ -1,6 +1,5 @@ package net.corda.node.utilities.registration -import net.corda.core.* import net.corda.core.crypto.CertificateType import net.corda.core.crypto.Crypto import net.corda.core.crypto.X509Utilities @@ -9,6 +8,7 @@ import net.corda.core.crypto.X509Utilities.CORDA_CLIENT_TLS import net.corda.core.crypto.X509Utilities.CORDA_ROOT_CA import net.corda.core.crypto.cert import net.corda.core.internal.* +import net.corda.core.utilities.seconds import net.corda.node.services.config.NodeConfiguration import net.corda.node.utilities.* import org.bouncycastle.cert.path.CertPath diff --git a/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt b/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt index 1c8fa4ddea..1cd53227da 100644 --- a/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt +++ b/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt @@ -8,7 +8,6 @@ import net.corda.core.contracts.* import net.corda.core.crypto.DigitalSignature import net.corda.core.crypto.SecureHash import net.corda.core.crypto.sign -import net.corda.core.crypto.toStringShort import net.corda.core.flows.FlowLogic import net.corda.core.flows.InitiatedBy import net.corda.core.flows.InitiatingFlow @@ -27,6 +26,7 @@ import net.corda.core.serialization.serialize import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder import net.corda.core.transactions.WireTransaction +import net.corda.core.utilities.days import net.corda.core.utilities.toNonEmptySet import net.corda.core.utilities.unwrap import net.corda.flows.TwoPartyTradeFlow.Buyer diff --git a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt index dedb3bd5c3..cfd8a53088 100644 --- a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt @@ -6,7 +6,7 @@ import net.corda.core.crypto.generateKeyPair import net.corda.core.getOrThrow import net.corda.core.identity.Party import net.corda.core.node.services.ServiceInfo -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.WireTransaction import net.corda.core.flows.NotaryChangeFlow import net.corda.core.flows.StateReplacementException diff --git a/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt index 8d21979c6f..abce8ae027 100644 --- a/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt @@ -1,7 +1,7 @@ package net.corda.node.services.events import net.corda.core.contracts.* -import net.corda.core.days +import net.corda.core.utilities.days import net.corda.core.flows.FlowLogic import net.corda.core.flows.FlowLogicRef import net.corda.core.flows.FlowLogicRefFactory diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt index fbc80fd8db..0edfe85802 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt @@ -10,7 +10,7 @@ import net.corda.core.flows.NotaryException import net.corda.core.flows.NotaryFlow import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.node.internal.AbstractNode import net.corda.node.services.network.NetworkMapService diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt index 1ea1148c9b..af9e8c009b 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt @@ -8,12 +8,12 @@ import net.corda.contracts.asset.DUMMY_CASH_ISSUER import net.corda.core.contracts.* import net.corda.core.crypto.entropyToKeyPair import net.corda.core.crypto.toBase58String -import net.corda.core.days +import net.corda.core.utilities.days import net.corda.core.identity.Party import net.corda.core.node.services.* import net.corda.core.node.services.vault.* import net.corda.core.node.services.vault.QueryCriteria.* -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.core.utilities.OpaqueBytes import net.corda.core.utilities.NonEmptySet diff --git a/node/src/test/kotlin/net/corda/node/utilities/ClockUtilsTest.kt b/node/src/test/kotlin/net/corda/node/utilities/ClockUtilsTest.kt index 38a5c91d67..81b290f178 100644 --- a/node/src/test/kotlin/net/corda/node/utilities/ClockUtilsTest.kt +++ b/node/src/test/kotlin/net/corda/node/utilities/ClockUtilsTest.kt @@ -6,6 +6,8 @@ import co.paralleluniverse.fibers.Suspendable import co.paralleluniverse.strands.Strand import com.google.common.util.concurrent.SettableFuture import net.corda.core.getOrThrow +import net.corda.core.utilities.hours +import net.corda.core.utilities.minutes import net.corda.testing.node.TestClock import org.junit.After import org.junit.Before @@ -44,7 +46,7 @@ class ClockUtilsTest { @Test fun `test waiting negative time for a deadline`() { - assertFalse(stoppedClock.awaitWithDeadline(stoppedClock.instant().minus(Duration.ofHours(1))), "Should have reached deadline") + assertFalse(stoppedClock.awaitWithDeadline(stoppedClock.instant().minus(1.hours)), "Should have reached deadline") } @Test @@ -56,13 +58,13 @@ class ClockUtilsTest { @Test fun `test waiting negative time for a deadline with incomplete future`() { val future = SettableFuture.create() - assertFalse(stoppedClock.awaitWithDeadline(stoppedClock.instant().minus(Duration.ofHours(1)), future), "Should have reached deadline") + assertFalse(stoppedClock.awaitWithDeadline(stoppedClock.instant().minus(1.hours), future), "Should have reached deadline") } @Test fun `test waiting for a deadline with future completed before wait`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val future = SettableFuture.create() completeNow(future) assertTrue(stoppedClock.awaitWithDeadline(advancedClock.instant(), future), "Should not have reached deadline") @@ -70,7 +72,7 @@ class ClockUtilsTest { @Test fun `test waiting for a deadline with future completed after wait`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val future = SettableFuture.create() completeAfterWaiting(future) assertTrue(stoppedClock.awaitWithDeadline(advancedClock.instant(), future), "Should not have reached deadline") @@ -78,38 +80,38 @@ class ClockUtilsTest { @Test fun `test waiting for a deadline with clock advance`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) - advanceClockAfterWait(testClock, Duration.ofHours(1)) + advanceClockAfterWait(testClock, 1.hours) assertFalse(testClock.awaitWithDeadline(advancedClock.instant()), "Should have reached deadline") } @Test fun `test waiting for a deadline with clock advance and incomplete future`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = SettableFuture.create() - advanceClockAfterWait(testClock, Duration.ofHours(1)) + advanceClockAfterWait(testClock, 1.hours) assertFalse(testClock.awaitWithDeadline(advancedClock.instant(), future), "Should have reached deadline") } @Test fun `test waiting for a deadline with clock advance and complete future`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(2)) + val advancedClock = Clock.offset(stoppedClock, 2.hours) val testClock = TestClock(stoppedClock) val future = SettableFuture.create() - advanceClockAfterWait(testClock, Duration.ofHours(1)) + advanceClockAfterWait(testClock, 1.hours) completeAfterWaiting(future) assertTrue(testClock.awaitWithDeadline(advancedClock.instant(), future), "Should not have reached deadline") } @Test fun `test waiting for a deadline with multiple clock advance and incomplete future`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = SettableFuture.create() for (advance in 1..6) { - advanceClockAfterWait(testClock, Duration.ofMinutes(10)) + advanceClockAfterWait(testClock, 10.minutes) } assertFalse(testClock.awaitWithDeadline(advancedClock.instant(), future), "Should have reached deadline") } @@ -126,7 +128,7 @@ class ClockUtilsTest { } val testClock = TestClock(stoppedClock) - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(10)) + val advancedClock = Clock.offset(stoppedClock, 10.hours) try { testClock.awaitWithDeadline(advancedClock.instant(), SettableFuture.create()) @@ -138,7 +140,7 @@ class ClockUtilsTest { @Test @Suspendable fun `test waiting for a deadline with multiple clock advance and incomplete JDK8 future on Fibers`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = CompletableFuture() val scheduler = FiberExecutorScheduler("test", executor) @@ -151,7 +153,7 @@ class ClockUtilsTest { while (fiber.state != Strand.State.TIMED_WAITING) { Strand.sleep(1) } - testClock.advanceBy(Duration.ofMinutes(10)) + testClock.advanceBy(10.minutes) }).start() } assertFalse(future.getOrThrow(), "Should have reached deadline") @@ -160,7 +162,7 @@ class ClockUtilsTest { @Test @Suspendable fun `test waiting for a deadline with multiple clock advance and incomplete Guava future on Fibers`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = SettableFuture.create() val scheduler = FiberExecutorScheduler("test", executor) @@ -173,7 +175,7 @@ class ClockUtilsTest { while (fiber.state != Strand.State.TIMED_WAITING) { Strand.sleep(1) } - testClock.advanceBy(Duration.ofMinutes(10)) + testClock.advanceBy(10.minutes) }).start() } assertFalse(future.getOrThrow(), "Should have reached deadline") diff --git a/node/src/test/kotlin/net/corda/node/utilities/FiberBoxTest.kt b/node/src/test/kotlin/net/corda/node/utilities/FiberBoxTest.kt index 80211f61aa..25fc475071 100644 --- a/node/src/test/kotlin/net/corda/node/utilities/FiberBoxTest.kt +++ b/node/src/test/kotlin/net/corda/node/utilities/FiberBoxTest.kt @@ -5,6 +5,8 @@ import co.paralleluniverse.fibers.Suspendable import co.paralleluniverse.strands.Strand import net.corda.core.RetryableException import net.corda.core.getOrThrow +import net.corda.core.utilities.hours +import net.corda.core.utilities.minutes import net.corda.testing.node.TestClock import org.junit.After import org.junit.Before @@ -50,7 +52,7 @@ class FiberBoxTest { @Test fun `readWithDeadline with no wait`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) mutex.write { integer = 1 } assertEquals(1, mutex.readWithDeadline(realClock, advancedClock.instant()) { integer }) @@ -58,7 +60,7 @@ class FiberBoxTest { @Test fun `readWithDeadline with stopped clock and background write`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) assertEquals(1, mutex.readWithDeadline(stoppedClock, advancedClock.instant()) { backgroundWrite() @@ -68,22 +70,22 @@ class FiberBoxTest { @Test(expected = TestRetryableException::class) fun `readWithDeadline with clock advanced`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) assertEquals(1, mutex.readWithDeadline(testClock, advancedClock.instant()) { - backgroundAdvanceClock(testClock, Duration.ofHours(1)) + backgroundAdvanceClock(testClock, 1.hours) if (integer == 1) 0 else throw TestRetryableException("Not 1") }) } @Test fun `readWithDeadline with clock advanced 5x and background write`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) assertEquals(5, mutex.readWithDeadline(testClock, advancedClock.instant()) { - backgroundAdvanceClock(testClock, Duration.ofMinutes(10)) + backgroundAdvanceClock(testClock, 10.minutes) backgroundWrite() if (integer == 5) 5 else throw TestRetryableException("Not 5") }) @@ -97,7 +99,7 @@ class FiberBoxTest { @Test(expected = TestRetryableException::class) @Suspendable fun `readWithDeadline with clock advanced on Fibers`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = CompletableFuture() val scheduler = FiberExecutorScheduler("test", executor) @@ -116,7 +118,7 @@ class FiberBoxTest { while (fiber.state != Strand.State.TIMED_WAITING) { Strand.sleep(1) } - testClock.advanceBy(Duration.ofMinutes(10)) + testClock.advanceBy(10.minutes) }).start() } assertEquals(2, future.getOrThrow()) @@ -130,7 +132,7 @@ class FiberBoxTest { @Test @Suspendable fun `readWithDeadline with background write on Fibers`() { - val advancedClock = Clock.offset(stoppedClock, Duration.ofHours(1)) + val advancedClock = Clock.offset(stoppedClock, 1.hours) val testClock = TestClock(stoppedClock) val future = CompletableFuture() val scheduler = FiberExecutorScheduler("test", executor) diff --git a/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt b/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt index ac93b3ec0b..66dce242fe 100644 --- a/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt +++ b/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt @@ -6,15 +6,16 @@ import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo import net.corda.core.toFuture import net.corda.core.utilities.NetworkHostAndPort -import net.corda.testing.DUMMY_BANK_A -import net.corda.testing.DUMMY_BANK_B -import net.corda.testing.DUMMY_NOTARY +import net.corda.core.utilities.seconds import net.corda.irs.api.NodeInterestRates import net.corda.irs.contract.InterestRateSwap import net.corda.irs.utilities.uploadFile import net.corda.node.services.config.FullNodeConfiguration import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User +import net.corda.testing.DUMMY_BANK_A +import net.corda.testing.DUMMY_BANK_B +import net.corda.testing.DUMMY_NOTARY import net.corda.testing.IntegrationTestCategory import net.corda.testing.driver.driver import net.corda.testing.http.HttpApi @@ -25,13 +26,12 @@ import rx.Observable import java.net.URL import java.time.Duration import java.time.LocalDate -import java.time.temporal.ChronoUnit class IRSDemoTest : IntegrationTestCategory { val rpcUser = User("user", "password", emptySet()) val currentDate: LocalDate = LocalDate.now() val futureDate: LocalDate = currentDate.plusMonths(6) - val maxWaitTime: Duration = Duration.of(60, ChronoUnit.SECONDS) + val maxWaitTime: Duration = 60.seconds @Test fun `runs IRS demo`() { diff --git a/samples/irs-demo/src/main/kotlin/net/corda/irs/flows/FixingFlow.kt b/samples/irs-demo/src/main/kotlin/net/corda/irs/flows/FixingFlow.kt index 9b8a11cd96..1a0f55c814 100644 --- a/samples/irs-demo/src/main/kotlin/net/corda/irs/flows/FixingFlow.kt +++ b/samples/irs-demo/src/main/kotlin/net/corda/irs/flows/FixingFlow.kt @@ -12,7 +12,7 @@ import net.corda.core.flows.SchedulableFlow import net.corda.core.identity.Party import net.corda.core.node.NodeInfo import net.corda.core.node.services.ServiceType -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.serialization.CordaSerializable import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder diff --git a/samples/irs-demo/src/main/kotlin/net/corda/irs/utilities/OracleUtils.kt b/samples/irs-demo/src/main/kotlin/net/corda/irs/utilities/OracleUtils.kt index 54413553a8..bb370c9a36 100644 --- a/samples/irs-demo/src/main/kotlin/net/corda/irs/utilities/OracleUtils.kt +++ b/samples/irs-demo/src/main/kotlin/net/corda/irs/utilities/OracleUtils.kt @@ -1,7 +1,11 @@ package net.corda.irs.utilities import net.corda.core.contracts.TimeWindow -import java.time.* +import net.corda.core.utilities.hours +import java.time.LocalDate +import java.time.LocalTime +import java.time.ZoneId +import java.time.ZonedDateTime /** * This whole file exists as short cuts to get demos working. In reality we'd have static data and/or rules engine @@ -16,5 +20,5 @@ fun suggestInterestRateAnnouncementTimeWindow(index: String, source: String, dat // Here we apply a blanket announcement time of 11:45 London irrespective of source or index val time = LocalTime.of(11, 45) val zoneId = ZoneId.of("Europe/London") - return TimeWindow.fromStartAndDuration(ZonedDateTime.of(date, time, zoneId).toInstant(), Duration.ofHours(24)) + return TimeWindow.fromStartAndDuration(ZonedDateTime.of(date, time, zoneId).toInstant(), 24.hours) } diff --git a/samples/irs-demo/src/test/kotlin/net/corda/irs/contract/IRSTests.kt b/samples/irs-demo/src/test/kotlin/net/corda/irs/contract/IRSTests.kt index fc01eddcaa..576dee021e 100644 --- a/samples/irs-demo/src/test/kotlin/net/corda/irs/contract/IRSTests.kt +++ b/samples/irs-demo/src/test/kotlin/net/corda/irs/contract/IRSTests.kt @@ -2,7 +2,7 @@ package net.corda.irs.contract import net.corda.contracts.* import net.corda.core.contracts.* -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.testing.DUMMY_NOTARY import net.corda.testing.DUMMY_NOTARY_KEY diff --git a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/flows/StateRevisionFlow.kt b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/flows/StateRevisionFlow.kt index 343282440c..61684381f3 100644 --- a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/flows/StateRevisionFlow.kt +++ b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/flows/StateRevisionFlow.kt @@ -2,7 +2,7 @@ package net.corda.vega.flows import net.corda.core.contracts.StateAndRef import net.corda.core.identity.Party -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.flows.AbstractStateReplacementFlow import net.corda.core.flows.StateReplacementException import net.corda.vega.contracts.RevisionedState diff --git a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt index a0198451a9..ddd7127651 100644 --- a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt +++ b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt @@ -4,7 +4,7 @@ import com.google.common.util.concurrent.Futures import net.corda.client.rpc.CordaRPCClient import net.corda.core.contracts.DOLLARS import net.corda.core.getOrThrow -import net.corda.core.millis +import net.corda.core.utilities.millis import net.corda.core.node.services.ServiceInfo import net.corda.testing.DUMMY_BANK_A import net.corda.testing.DUMMY_BANK_B diff --git a/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/flow/SellerFlow.kt b/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/flow/SellerFlow.kt index ca738a7bdb..ed1b130b41 100644 --- a/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/flow/SellerFlow.kt +++ b/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/flow/SellerFlow.kt @@ -5,7 +5,7 @@ import net.corda.contracts.CommercialPaper import net.corda.contracts.asset.DUMMY_CASH_ISSUER import net.corda.core.contracts.* import net.corda.core.crypto.SecureHash -import net.corda.core.days +import net.corda.core.utilities.days import net.corda.core.flows.FinalityFlow import net.corda.core.flows.FlowLogic import net.corda.core.flows.InitiatingFlow @@ -14,7 +14,7 @@ import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party import net.corda.core.node.NodeInfo -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.SignedTransaction import net.corda.core.utilities.ProgressTracker import net.corda.flows.TwoPartyTradeFlow diff --git a/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt b/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt index cb973e022f..92b9604350 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt @@ -4,7 +4,7 @@ import net.corda.core.contracts.* import net.corda.testing.contracts.DummyContract import net.corda.core.crypto.SecureHash import net.corda.core.identity.Party -import net.corda.core.seconds +import net.corda.core.utilities.seconds import net.corda.core.transactions.TransactionBuilder import java.security.PublicKey import java.time.Duration diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/web/WebServer.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/web/WebServer.kt index aad88033bc..b948a7580e 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/web/WebServer.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/web/WebServer.kt @@ -4,7 +4,7 @@ import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.RateLimiter import com.google.common.util.concurrent.SettableFuture import net.corda.core.catch -import net.corda.core.minutes +import net.corda.core.utilities.minutes import net.corda.core.until import net.corda.core.utilities.loggerFor import net.corda.demobench.model.NodeConfig