diff options
author | Antoine A <> | 2024-04-08 10:09:54 +0200 |
---|---|---|
committer | Antoine A <> | 2024-04-08 10:09:54 +0200 |
commit | d43a1a66429f056be442e8fa21ae50a3642147bb (patch) | |
tree | 18900ab5877dfcd4f61b03e2ef7560206febc2ef | |
parent | fddb1e818e191f4870bac68b7f7893f18fccb4fb (diff) | |
download | libeufin-d43a1a66429f056be442e8fa21ae50a3642147bb.tar.gz libeufin-d43a1a66429f056be442e8fa21ae50a3642147bb.tar.bz2 libeufin-d43a1a66429f056be442e8fa21ae50a3642147bb.zip |
Optimise imports
60 files changed, 250 insertions, 285 deletions
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt index c746c419..9cdfcf0f 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt @@ -23,7 +23,7 @@ import kotlinx.serialization.json.Json import org.slf4j.Logger import org.slf4j.LoggerFactory import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.db.DatabaseConfig import java.nio.file.Path import java.time.Duration diff --git a/bank/src/main/kotlin/tech/libeufin/bank/Main.kt b/bank/src/main/kotlin/tech/libeufin/bank/Main.kt index 48c1e082..1e28af34 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/Main.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/Main.kt @@ -51,19 +51,20 @@ import org.postgresql.util.PSQLState import org.slf4j.Logger import org.slf4j.LoggerFactory import org.slf4j.event.Level +import tech.libeufin.bank.api.* import tech.libeufin.bank.db.AccountDAO.* import tech.libeufin.bank.db.Database import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.db.dbInit +import tech.libeufin.common.db.pgDataSource import java.net.InetAddress import java.sql.SQLException +import java.time.Instant import java.util.zip.DataFormatException import java.util.zip.Inflater -import java.time.Instant import kotlin.io.path.Path import kotlin.io.path.exists import kotlin.io.path.readText -import tech.libeufin.bank.api.* private val logger: Logger = LoggerFactory.getLogger("libeufin-bank") // Dirty local variable to stop the server in test TODO remove this ugly hack diff --git a/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt b/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt index 93d649ee..bb148166 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt @@ -30,8 +30,6 @@ import kotlinx.serialization.json.JsonDecoder import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.longOrNull -import tech.libeufin.common.Base32Crockford -import tech.libeufin.common.EncodingException import tech.libeufin.common.TalerAmount import java.net.URL import java.time.Duration diff --git a/bank/src/main/kotlin/tech/libeufin/bank/api/CoreBankApi.kt b/bank/src/main/kotlin/tech/libeufin/bank/api/CoreBankApi.kt index 39193912..1ef1ace5 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/api/CoreBankApi.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/api/CoreBankApi.kt @@ -28,6 +28,7 @@ import kotlinx.coroutines.future.await import kotlinx.coroutines.withContext import org.slf4j.Logger import org.slf4j.LoggerFactory +import tech.libeufin.bank.* import tech.libeufin.bank.auth.* import tech.libeufin.bank.db.AbortResult import tech.libeufin.bank.db.AccountDAO.* @@ -39,7 +40,6 @@ import tech.libeufin.bank.db.TransactionDAO.BankTransactionResult import tech.libeufin.bank.db.WithdrawalDAO.WithdrawalConfirmationResult import tech.libeufin.bank.db.WithdrawalDAO.WithdrawalCreationResult import tech.libeufin.common.* -import tech.libeufin.bank.* import java.time.Duration import java.time.Instant import java.time.temporal.ChronoUnit diff --git a/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt b/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt index 577da51d..83bde34f 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt @@ -27,8 +27,11 @@ import io.ktor.util.* import io.ktor.util.pipeline.* import tech.libeufin.bank.* import tech.libeufin.bank.db.Database -import tech.libeufin.common.* -import tech.libeufin.common.crypto.* +import tech.libeufin.common.Base32Crockford +import tech.libeufin.common.TalerErrorCode +import tech.libeufin.common.crypto.PwCrypto +import tech.libeufin.common.decodeBase64 +import tech.libeufin.common.splitOnce import java.time.Instant /** Used to store if the currently authenticated user is admin */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt index 5f102ccc..036ec116 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt @@ -21,8 +21,8 @@ package tech.libeufin.bank.db import tech.libeufin.bank.* import tech.libeufin.common.* +import tech.libeufin.common.crypto.PwCrypto import tech.libeufin.common.db.* -import tech.libeufin.common.crypto.* import java.time.Instant /** Data access logic for accounts */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt index 799d466a..c4f25657 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt @@ -20,8 +20,12 @@ package tech.libeufin.bank.db import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.ShortHashCode +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.asInstant +import tech.libeufin.common.db.getAmount +import tech.libeufin.common.db.oneOrNull +import tech.libeufin.common.micros import java.time.Instant /** Data access logic for cashout operations */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt index 3e025a0c..5849881d 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt @@ -24,7 +24,9 @@ import tech.libeufin.bank.DecimalNumber import tech.libeufin.bank.RoundingMode import tech.libeufin.bank.internalServerError import tech.libeufin.common.TalerAmount -import tech.libeufin.common.db.* +import tech.libeufin.common.db.getAmount +import tech.libeufin.common.db.oneOrNull +import tech.libeufin.common.db.transaction /** Data access logic for conversion */ class ConversionDAO(private val db: Database) { diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt index 3f47bd06..b6e6fd7e 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/Database.kt @@ -27,12 +27,10 @@ import kotlinx.coroutines.withTimeoutOrNull import org.slf4j.Logger import org.slf4j.LoggerFactory import tech.libeufin.bank.* -import tech.libeufin.common.* +import tech.libeufin.common.asInstant import tech.libeufin.common.db.* import java.sql.PreparedStatement import java.sql.ResultSet -import java.sql.Types -import java.time.LocalDateTime import kotlin.math.abs private val logger: Logger = LoggerFactory.getLogger("libeufin-bank-db") diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt index c425c516..3ae15c7e 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt @@ -20,8 +20,12 @@ package tech.libeufin.bank.db import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.BankPaytoCtx +import tech.libeufin.common.EddsaPublicKey +import tech.libeufin.common.ShortHashCode +import tech.libeufin.common.db.getAmount +import tech.libeufin.common.db.getBankPayto +import tech.libeufin.common.micros import java.time.Instant /** Data access logic for exchange specific logic */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/GcDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/GcDAO.kt index 29eede85..c00888df 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/GcDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/GcDAO.kt @@ -19,12 +19,9 @@ package tech.libeufin.bank.db -import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* -import tech.libeufin.common.crypto.* -import java.time.Instant +import tech.libeufin.common.micros import java.time.Duration +import java.time.Instant /** Data access logic for garbage collection */ class GcDAO(private val db: Database) { diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt index fbc99960..388d530a 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt @@ -22,8 +22,8 @@ package tech.libeufin.bank.db import tech.libeufin.bank.Operation import tech.libeufin.bank.TanChannel import tech.libeufin.bank.internalServerError +import tech.libeufin.common.db.oneOrNull import tech.libeufin.common.micros -import tech.libeufin.common.db.* import java.time.Duration import java.time.Instant import java.util.concurrent.TimeUnit diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/TokenDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/TokenDAO.kt index 18a14c24..f7f1d09c 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/TokenDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/TokenDAO.kt @@ -22,8 +22,9 @@ package tech.libeufin.bank.db import tech.libeufin.bank.BearerToken import tech.libeufin.bank.TokenScope import tech.libeufin.common.asInstant +import tech.libeufin.common.db.executeUpdateViolation +import tech.libeufin.common.db.oneOrNull import tech.libeufin.common.micros -import tech.libeufin.common.db.* import java.time.Instant /** Data access logic for auth tokens */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt index 9e27cb26..6a02205c 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt @@ -24,8 +24,12 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import kotlinx.coroutines.withTimeoutOrNull import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.EddsaPublicKey +import tech.libeufin.common.Payto +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.db.getAmount +import tech.libeufin.common.db.oneOrNull +import tech.libeufin.common.micros import java.time.Instant import java.util.* diff --git a/bank/src/main/kotlin/tech/libeufin/bank/params.kt b/bank/src/main/kotlin/tech/libeufin/bank/params.kt index 4972ef99..72e6cabd 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/params.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/params.kt @@ -26,7 +26,7 @@ import java.time.Instant import java.time.LocalDateTime import java.time.ZoneOffset import java.time.temporal.TemporalAdjusters -import java.util.UUID +import java.util.* fun Parameters.expect(name: String): String = get(name) ?: throw badRequest("Missing '$name' parameter", TalerErrorCode.GENERIC_PARAMETER_MISSING) diff --git a/bank/src/test/kotlin/AmountTest.kt b/bank/src/test/kotlin/AmountTest.kt index f89432b5..51c21b87 100644 --- a/bank/src/test/kotlin/AmountTest.kt +++ b/bank/src/test/kotlin/AmountTest.kt @@ -21,8 +21,11 @@ import org.junit.Test import tech.libeufin.bank.DecimalNumber import tech.libeufin.bank.db.TransactionDAO.BankTransactionResult import tech.libeufin.bank.db.WithdrawalDAO.WithdrawalCreationResult -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.TalerErrorCode +import tech.libeufin.common.db.oneOrNull +import tech.libeufin.common.json +import tech.libeufin.common.obj import java.time.Instant import java.util.* import kotlin.test.assertEquals diff --git a/bank/src/test/kotlin/CommonApiTest.kt b/bank/src/test/kotlin/CommonApiTest.kt index 645dbaa8..28866eea 100644 --- a/bank/src/test/kotlin/CommonApiTest.kt +++ b/bank/src/test/kotlin/CommonApiTest.kt @@ -18,19 +18,9 @@ */ import io.ktor.client.request.* -import io.ktor.client.statement.* import io.ktor.http.* -import io.ktor.server.testing.* -import kotlinx.serialization.json.JsonElement import org.junit.Test -import tech.libeufin.bank.* -import tech.libeufin.common.* -import java.time.Duration -import java.time.Instant -import java.util.* -import kotlin.test.assertEquals -import kotlin.test.assertNotNull -import kotlin.test.assertNull +import tech.libeufin.common.TalerErrorCode class CommonApiTest { @Test diff --git a/bank/src/test/kotlin/DatabaseTest.kt b/bank/src/test/kotlin/DatabaseTest.kt index 0536ae42..f7dbd82f 100644 --- a/bank/src/test/kotlin/DatabaseTest.kt +++ b/bank/src/test/kotlin/DatabaseTest.kt @@ -22,15 +22,14 @@ import kotlinx.coroutines.launch import org.junit.Test import tech.libeufin.bank.createAdminAccount import tech.libeufin.bank.db.AccountDAO.AccountCreationResult -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.db.oneOrNull import java.time.Duration import java.time.Instant import java.time.temporal.ChronoUnit import java.util.concurrent.TimeUnit import kotlin.test.assertEquals -import kotlin.test.assertNull import kotlin.test.assertIs +import kotlin.test.assertNull class DatabaseTest { diff --git a/bank/src/test/kotlin/GcTest.kt b/bank/src/test/kotlin/GcTest.kt index 32f78552..17a3b9d0 100644 --- a/bank/src/test/kotlin/GcTest.kt +++ b/bank/src/test/kotlin/GcTest.kt @@ -17,22 +17,20 @@ * <http://www.gnu.org/licenses/> */ +import io.ktor.client.request.* import org.junit.Test -import tech.libeufin.bank.DecimalNumber -import tech.libeufin.bank.db.TransactionDAO.BankTransactionResult -import tech.libeufin.bank.db.WithdrawalDAO.* -import tech.libeufin.bank.db.TransactionDAO.* +import tech.libeufin.bank.* import tech.libeufin.bank.db.CashoutDAO.CashoutCreationResult import tech.libeufin.bank.db.ExchangeDAO.TransferResult +import tech.libeufin.bank.db.TransactionDAO.BankTransactionResult +import tech.libeufin.bank.db.WithdrawalDAO.* import tech.libeufin.common.* -import tech.libeufin.common.db.* -import io.ktor.client.request.* -import io.ktor.client.statement.* -import io.ktor.http.* -import tech.libeufin.bank.* -import java.time.* +import tech.libeufin.common.db.one +import java.time.Duration +import java.time.Instant import java.util.* -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertIs class GcTest { @Test diff --git a/bank/src/test/kotlin/StatsTest.kt b/bank/src/test/kotlin/StatsTest.kt index 4dd52e3d..f5ec3161 100644 --- a/bank/src/test/kotlin/StatsTest.kt +++ b/bank/src/test/kotlin/StatsTest.kt @@ -19,13 +19,17 @@ import io.ktor.client.request.* import org.junit.Test -import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.bank.MonitorParams +import tech.libeufin.bank.MonitorResponse +import tech.libeufin.bank.MonitorWithConversion +import tech.libeufin.bank.Timeframe +import tech.libeufin.common.ShortHashCode +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.db.executeQueryCheck +import tech.libeufin.common.micros import java.time.Instant -import java.time.ZoneOffset import java.time.LocalDateTime -import java.time.OffsetDateTime +import java.time.ZoneOffset import kotlin.test.assertEquals class StatsTest { diff --git a/bank/src/test/kotlin/helpers.kt b/bank/src/test/kotlin/helpers.kt index 1a1f5b19..8c0f070b 100644 --- a/bank/src/test/kotlin/helpers.kt +++ b/bank/src/test/kotlin/helpers.kt @@ -27,15 +27,16 @@ import tech.libeufin.bank.* import tech.libeufin.bank.db.AccountDAO.AccountCreationResult import tech.libeufin.bank.db.Database import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.db.dbInit +import tech.libeufin.common.db.pgDataSource import java.nio.file.NoSuchFileException import kotlin.io.path.Path import kotlin.io.path.deleteExisting import kotlin.io.path.readText import kotlin.random.Random import kotlin.test.assertEquals -import kotlin.test.assertNotNull import kotlin.test.assertIs +import kotlin.test.assertNotNull /* ----- Setup ----- */ diff --git a/common/src/main/kotlin/Cli.kt b/common/src/main/kotlin/Cli.kt index ae9d8e87..906c2a1a 100644 --- a/common/src/main/kotlin/Cli.kt +++ b/common/src/main/kotlin/Cli.kt @@ -30,10 +30,12 @@ import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.types.enum import com.github.ajalt.clikt.parameters.types.path +import kotlinx.coroutines.cancelAndJoin +import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking import org.slf4j.Logger import org.slf4j.LoggerFactory import org.slf4j.event.Level -import kotlinx.coroutines.* private val logger: Logger = LoggerFactory.getLogger("libeufin-config") diff --git a/common/src/main/kotlin/TalerConfig.kt b/common/src/main/kotlin/TalerConfig.kt index 8961ff47..84d212d3 100644 --- a/common/src/main/kotlin/TalerConfig.kt +++ b/common/src/main/kotlin/TalerConfig.kt @@ -24,9 +24,12 @@ import org.slf4j.LoggerFactory import java.nio.file.AccessDeniedException import java.nio.file.NoSuchFileException import java.nio.file.Path -import java.time.* -import java.time.temporal.ChronoUnit +import java.time.Duration +import java.time.Instant +import java.time.LocalDate +import java.time.ZoneId import java.time.format.DateTimeParseException +import java.time.temporal.ChronoUnit import kotlin.io.path.* private val logger: Logger = LoggerFactory.getLogger("libeufin-config") diff --git a/common/src/main/kotlin/crypto/CryptoUtil.kt b/common/src/main/kotlin/crypto/CryptoUtil.kt index f6079ffe..09f69531 100644 --- a/common/src/main/kotlin/crypto/CryptoUtil.kt +++ b/common/src/main/kotlin/crypto/CryptoUtil.kt @@ -19,29 +19,26 @@ package tech.libeufin.common.crypto -import org.bouncycastle.jce.provider.BouncyCastleProvider -import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder -import org.bouncycastle.operator.ContentSigner -import org.bouncycastle.cert.jcajce.* +import org.bouncycastle.asn1.x500.X500Name import org.bouncycastle.asn1.x509.* import org.bouncycastle.asn1.x509.Extension -import org.bouncycastle.asn1.x500.X500Name -import org.bouncycastle.asn1.ASN1ObjectIdentifier +import org.bouncycastle.cert.jcajce.* +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder +import tech.libeufin.common.* import java.io.ByteArrayOutputStream import java.io.InputStream import java.math.BigInteger -import java.util.* import java.security.* +import java.security.cert.* import java.security.interfaces.RSAPrivateCrtKey import java.security.interfaces.RSAPublicKey -import java.security.cert.* import java.security.spec.* +import java.util.* import javax.crypto.* import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.PBEKeySpec -import javax.crypto.spec.PBEParameterSpec import javax.crypto.spec.SecretKeySpec -import tech.libeufin.common.* /** Helpers for dealing with cryptographic operations in EBICS / LibEuFin */ object CryptoUtil { diff --git a/common/src/main/kotlin/crypto/PwCrypto.kt b/common/src/main/kotlin/crypto/PwCrypto.kt index 2dd8af07..11e3a7dd 100644 --- a/common/src/main/kotlin/crypto/PwCrypto.kt +++ b/common/src/main/kotlin/crypto/PwCrypto.kt @@ -19,21 +19,8 @@ package tech.libeufin.common.crypto -import org.bouncycastle.jce.provider.BouncyCastleProvider -import java.io.ByteArrayOutputStream -import java.io.InputStream -import java.math.BigInteger -import java.security.* -import java.security.interfaces.RSAPrivateCrtKey -import java.security.interfaces.RSAPublicKey -import java.security.spec.* -import javax.crypto.* -import javax.crypto.spec.IvParameterSpec -import javax.crypto.spec.PBEKeySpec -import javax.crypto.spec.PBEParameterSpec -import javax.crypto.spec.SecretKeySpec -import java.util.Base64 -import tech.libeufin.common.* +import tech.libeufin.common.encodeBase64 +import java.security.SecureRandom /** Cryptographic operations for secure password storage and verification */ object PwCrypto { diff --git a/common/src/main/kotlin/db/DbPool.kt b/common/src/main/kotlin/db/DbPool.kt index f003e1d2..77891a68 100644 --- a/common/src/main/kotlin/db/DbPool.kt +++ b/common/src/main/kotlin/db/DbPool.kt @@ -19,14 +19,15 @@ package tech.libeufin.common.db -import tech.libeufin.common.* -import org.postgresql.jdbc.PgConnection -import org.postgresql.util.PSQLState -import java.sql.SQLException import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.postgresql.jdbc.PgConnection +import org.postgresql.util.PSQLState +import tech.libeufin.common.MIN_VERSION +import tech.libeufin.common.SERIALIZATION_RETRY +import java.sql.SQLException open class DbPool(cfg: DatabaseConfig, schema: String) : java.io.Closeable { val pgSource = pgDataSource(cfg.dbConnStr) diff --git a/common/src/main/kotlin/db/config.kt b/common/src/main/kotlin/db/config.kt index 6f225f05..28bc1321 100644 --- a/common/src/main/kotlin/db/config.kt +++ b/common/src/main/kotlin/db/config.kt @@ -19,19 +19,11 @@ package tech.libeufin.common.db -import tech.libeufin.common.* +import io.ktor.http.* import org.postgresql.ds.PGSimpleDataSource import org.postgresql.jdbc.PgConnection -import org.postgresql.util.PSQLState -import org.slf4j.Logger -import org.slf4j.LoggerFactory -import io.ktor.http.parseQueryString import java.net.URI import java.nio.file.Path -import java.sql.PreparedStatement -import java.sql.ResultSet -import java.sql.SQLException -import kotlin.io.path.Path fun currentUser(): String = System.getProperty("user.name") diff --git a/common/src/main/kotlin/db/schema.kt b/common/src/main/kotlin/db/schema.kt index 176c04ee..77b7db3d 100644 --- a/common/src/main/kotlin/db/schema.kt +++ b/common/src/main/kotlin/db/schema.kt @@ -19,9 +19,8 @@ package tech.libeufin.common.db -import tech.libeufin.common.* -import org.postgresql.jdbc.PgConnection import org.postgresql.ds.PGSimpleDataSource +import org.postgresql.jdbc.PgConnection import java.sql.Connection import kotlin.io.path.Path import kotlin.io.path.exists diff --git a/common/src/main/kotlin/db/types.kt b/common/src/main/kotlin/db/types.kt index cafc30c2..6986897f 100644 --- a/common/src/main/kotlin/db/types.kt +++ b/common/src/main/kotlin/db/types.kt @@ -19,7 +19,9 @@ package tech.libeufin.common.db -import tech.libeufin.common.* +import tech.libeufin.common.BankPaytoCtx +import tech.libeufin.common.Payto +import tech.libeufin.common.TalerAmount import java.sql.ResultSet fun ResultSet.getAmount(name: String, currency: String): TalerAmount { diff --git a/common/src/main/kotlin/db/utils.kt b/common/src/main/kotlin/db/utils.kt index d1197894..f06c4e4e 100644 --- a/common/src/main/kotlin/db/utils.kt +++ b/common/src/main/kotlin/db/utils.kt @@ -19,18 +19,13 @@ package tech.libeufin.common.db -import tech.libeufin.common.* -import org.postgresql.ds.PGSimpleDataSource import org.postgresql.jdbc.PgConnection import org.postgresql.util.PSQLState import org.slf4j.Logger import org.slf4j.LoggerFactory -import java.net.URI -import java.nio.file.Path import java.sql.PreparedStatement import java.sql.ResultSet import java.sql.SQLException -import kotlin.io.path.Path internal val logger: Logger = LoggerFactory.getLogger("libeufin-db") diff --git a/common/src/main/kotlin/helpers.kt b/common/src/main/kotlin/helpers.kt index fc361ab9..e9c43961 100644 --- a/common/src/main/kotlin/helpers.kt +++ b/common/src/main/kotlin/helpers.kt @@ -19,14 +19,14 @@ package tech.libeufin.common +import java.io.ByteArrayOutputStream +import java.io.FilterInputStream +import java.io.InputStream import java.math.BigInteger import java.util.* import java.util.zip.DeflaterInputStream import java.util.zip.InflaterInputStream import java.util.zip.ZipInputStream -import java.io.FilterInputStream -import java.io.InputStream -import java.io.ByteArrayOutputStream import kotlin.random.Random /* ----- String ----- */ diff --git a/common/src/test/kotlin/AmountTest.kt b/common/src/test/kotlin/AmountTest.kt index ccd836aa..78fc2ba8 100644 --- a/common/src/test/kotlin/AmountTest.kt +++ b/common/src/test/kotlin/AmountTest.kt @@ -17,11 +17,9 @@ * <http://www.gnu.org/licenses/> */ -import java.time.Instant -import java.util.* -import kotlin.test.* import org.junit.Test -import tech.libeufin.common.* +import tech.libeufin.common.TalerAmount +import kotlin.test.assertEquals class AmountTest { @Test diff --git a/common/src/test/kotlin/ConfigTest.kt b/common/src/test/kotlin/ConfigTest.kt index d27e9512..3c22d930 100644 --- a/common/src/test/kotlin/ConfigTest.kt +++ b/common/src/test/kotlin/ConfigTest.kt @@ -18,10 +18,10 @@ */ import org.junit.Test -import uk.org.webcompere.systemstubs.SystemStubs.* -import java.time.Duration import tech.libeufin.common.* import tech.libeufin.common.db.* +import uk.org.webcompere.systemstubs.SystemStubs.* +import java.time.Duration import kotlin.test.* class ConfigTest { diff --git a/common/src/test/kotlin/CryptoUtilTest.kt b/common/src/test/kotlin/CryptoUtilTest.kt index 6e062b1a..789c7afa 100644 --- a/common/src/test/kotlin/CryptoUtilTest.kt +++ b/common/src/test/kotlin/CryptoUtilTest.kt @@ -19,15 +19,18 @@ import org.junit.Ignore import org.junit.Test -import kotlin.io.path.* -import tech.libeufin.common.* -import tech.libeufin.common.crypto.* -import java.security.KeyPairGenerator -import java.security.interfaces.RSAPrivateCrtKey +import tech.libeufin.common.Base32Crockford +import tech.libeufin.common.crypto.CryptoUtil +import tech.libeufin.common.crypto.PwCrypto +import tech.libeufin.common.decodeUpHex +import tech.libeufin.common.encodeHex +import tech.libeufin.common.encodeUpHex import java.util.* -import javax.crypto.EncryptedPrivateKeyInfo +import kotlin.io.path.Path +import kotlin.io.path.readBytes +import kotlin.io.path.readText +import kotlin.io.path.writeBytes import kotlin.test.assertEquals -import kotlin.test.assertFalse import kotlin.test.assertTrue class CryptoUtilTest { diff --git a/common/src/test/kotlin/PaytoTest.kt b/common/src/test/kotlin/PaytoTest.kt index 0573af02..cfb33ada 100644 --- a/common/src/test/kotlin/PaytoTest.kt +++ b/common/src/test/kotlin/PaytoTest.kt @@ -18,8 +18,12 @@ */ import org.junit.Test -import tech.libeufin.common.* -import kotlin.test.* +import tech.libeufin.common.BankPaytoCtx +import tech.libeufin.common.CommonError +import tech.libeufin.common.Payto +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith +import kotlin.test.assertNull class PaytoTest { @Test diff --git a/common/src/test/kotlin/TalerConfigTest.kt b/common/src/test/kotlin/TalerConfigTest.kt index 6cc7aa04..c4d7c341 100644 --- a/common/src/test/kotlin/TalerConfigTest.kt +++ b/common/src/test/kotlin/TalerConfigTest.kt @@ -18,9 +18,11 @@ */ import org.junit.Test +import tech.libeufin.common.ConfigSource +import tech.libeufin.common.fromFile +import tech.libeufin.common.fromMem +import kotlin.io.path.Path import kotlin.test.assertEquals -import tech.libeufin.common.* -import kotlin.io.path.* class TalerConfigTest { diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DbInit.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/DbInit.kt index 0128ab85..f5077649 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/DbInit.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/DbInit.kt @@ -22,8 +22,10 @@ import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.parameters.groups.provideDelegate import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.option -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.CommonOption +import tech.libeufin.common.cliCmd +import tech.libeufin.common.db.dbInit +import tech.libeufin.common.db.pgDataSource /** * This subcommand tries to load the SQL files that define diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt index 328fe240..610b2c8b 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt @@ -27,12 +27,12 @@ import io.ktor.client.* import io.ktor.client.plugins.* import kotlinx.coroutines.* import tech.libeufin.common.* -import tech.libeufin.nexus.ebics.* import tech.libeufin.nexus.db.* +import tech.libeufin.nexus.ebics.* import java.io.IOException import java.io.InputStream -import java.time.Instant import java.time.Duration +import java.time.Instant import java.time.LocalDate import java.time.ZoneId import kotlin.io.* @@ -180,13 +180,13 @@ private suspend fun ingestDocument( } } HacAction.ORDER_HAC_FINAL_NEG -> { - logger.debug("$ack") + logger.debug("{}", ack) db.initiated.logFailure(ack.orderId!!)?.let { (requestUID, msg) -> logger.error("Payment '$requestUID' refused at ${ack.timestamp.fmtDateTime()}${if (msg != null) ": $msg" else ""}") } } else -> { - logger.debug("$ack") + logger.debug("{}", ack) if (ack.orderId != null) { db.initiated.logMessage(ack.orderId, ack.msg()) } @@ -197,7 +197,7 @@ private suspend fun ingestDocument( SupportedDocument.PAIN_002 -> { val status = parseCustomerPaymentStatusReport(xml) val msg = status.msg() - logger.debug("$status") + logger.debug("{}", status) if (status.paymentCode == ExternalPaymentGroupStatusCode.RJCT) { db.initiated.bankFailure(status.msgId, msg) logger.error("Transaction '${status.msgId}' was rejected : $msg") diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt index 12a72d40..8a54124f 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt @@ -25,8 +25,8 @@ import com.github.ajalt.clikt.parameters.options.* import io.ktor.client.* import kotlinx.coroutines.* import tech.libeufin.common.* -import tech.libeufin.nexus.ebics.* import tech.libeufin.nexus.db.* +import tech.libeufin.nexus.ebics.* import java.time.* import java.util.* import kotlin.time.toKotlinDuration diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt index 7e7a5e5d..08bb23f1 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt @@ -27,22 +27,22 @@ package tech.libeufin.nexus import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.subcommands -import com.github.ajalt.clikt.parameters.arguments.* -import com.github.ajalt.clikt.parameters.groups.* -import com.github.ajalt.clikt.parameters.options.* -import io.ktor.client.* -import io.ktor.util.* -import kotlinx.coroutines.* +import com.github.ajalt.clikt.parameters.arguments.argument +import com.github.ajalt.clikt.parameters.arguments.convert +import com.github.ajalt.clikt.parameters.groups.provideDelegate +import com.github.ajalt.clikt.parameters.options.convert +import com.github.ajalt.clikt.parameters.options.option +import com.github.ajalt.clikt.parameters.options.versionOption import org.slf4j.Logger import org.slf4j.LoggerFactory import tech.libeufin.common.* -import tech.libeufin.common.db.* -import tech.libeufin.nexus.ebics.* -import tech.libeufin.nexus.db.* +import tech.libeufin.common.db.DatabaseConfig +import tech.libeufin.nexus.db.Database +import tech.libeufin.nexus.db.InitiatedPayment import java.nio.file.Path -import java.util.* -import java.time.* -import java.time.format.* +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter val NEXUS_CONFIG_SOURCE = ConfigSource("libeufin", "libeufin-nexus", "libeufin-nexus") internal val logger: Logger = LoggerFactory.getLogger("libeufin-nexus") diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt index 71937a42..3e697e6d 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/PDF.kt @@ -24,12 +24,11 @@ import com.itextpdf.kernel.pdf.PdfWriter import com.itextpdf.layout.Document import com.itextpdf.layout.element.AreaBreak import com.itextpdf.layout.element.Paragraph +import tech.libeufin.common.crypto.CryptoUtil +import java.io.ByteArrayOutputStream import java.security.interfaces.RSAPrivateCrtKey import java.time.LocalDateTime import java.time.format.DateTimeFormatter -import java.util.* -import java.io.ByteArrayOutputStream -import tech.libeufin.common.crypto.* /** * Generate the PDF document with all the client public keys diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt index 2893f367..608177cd 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/XMLUtil.kt @@ -19,22 +19,14 @@ package tech.libeufin.nexus -import tech.libeufin.nexus.ebics.* -import io.ktor.http.* import org.w3c.dom.Document import org.w3c.dom.Node import org.w3c.dom.NodeList -import org.w3c.dom.ls.LSInput -import org.w3c.dom.ls.LSResourceResolver -import org.xml.sax.ErrorHandler import org.xml.sax.InputSource -import org.xml.sax.SAXException -import org.xml.sax.SAXParseException -import java.io.* +import java.io.ByteArrayOutputStream +import java.io.InputStream import java.security.PrivateKey import java.security.PublicKey -import java.security.interfaces.RSAPrivateCrtKey -import javax.xml.XMLConstants import javax.xml.crypto.* import javax.xml.crypto.dom.DOMURIReference import javax.xml.crypto.dsig.* @@ -42,16 +34,11 @@ import javax.xml.crypto.dsig.dom.DOMSignContext import javax.xml.crypto.dsig.dom.DOMValidateContext import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec import javax.xml.crypto.dsig.spec.TransformParameterSpec -import javax.xml.namespace.NamespaceContext import javax.xml.parsers.DocumentBuilderFactory import javax.xml.transform.OutputKeys -import javax.xml.transform.Source import javax.xml.transform.TransformerFactory import javax.xml.transform.dom.DOMSource import javax.xml.transform.stream.StreamResult -import javax.xml.transform.stream.StreamSource -import javax.xml.validation.SchemaFactory -import javax.xml.validation.Validator import javax.xml.xpath.XPath import javax.xml.xpath.XPathConstants import javax.xml.xpath.XPathFactory diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt index eb64a1f6..30714fb6 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/XmlCombinators.kt @@ -19,13 +19,14 @@ package tech.libeufin.nexus -import org.w3c.dom.* +import org.w3c.dom.Document +import org.w3c.dom.Element import java.io.InputStream import java.io.StringWriter import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter -import javax.xml.parsers.* +import javax.xml.parsers.DocumentBuilderFactory import javax.xml.stream.XMLOutputFactory import javax.xml.stream.XMLStreamWriter diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/db/Database.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/db/Database.kt index d76a0405..b6422612 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/db/Database.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/db/Database.kt @@ -18,15 +18,10 @@ */ package tech.libeufin.nexus.db -import org.postgresql.util.PSQLState -import tech.libeufin.common.* -import tech.libeufin.common.db.* -import tech.libeufin.nexus.* -import java.sql.PreparedStatement -import java.sql.SQLException -import java.text.SimpleDateFormat +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.db.DatabaseConfig +import tech.libeufin.common.db.DbPool import java.time.Instant -import java.util.* /** * Minimal set of information to initiate a new payment in diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/db/InitiatedDAO.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/db/InitiatedDAO.kt index ac27f04b..04fd3965 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/db/InitiatedDAO.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/db/InitiatedDAO.kt @@ -19,11 +19,14 @@ package tech.libeufin.nexus.db -import tech.libeufin.nexus.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* -import java.time.Instant +import tech.libeufin.common.asInstant +import tech.libeufin.common.db.all +import tech.libeufin.common.db.executeUpdateViolation +import tech.libeufin.common.db.getAmount +import tech.libeufin.common.db.oneOrNull +import tech.libeufin.common.micros import java.sql.ResultSet +import java.time.Instant /** Data access logic for initiated outgoing payments */ class InitiatedDAO(private val db: Database) { diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt index 8aa7cd2d..d316267f 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt @@ -19,9 +19,12 @@ package tech.libeufin.nexus.db -import tech.libeufin.nexus.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.EddsaPublicKey +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.db.one +import tech.libeufin.common.micros +import tech.libeufin.nexus.IncomingPayment +import tech.libeufin.nexus.OutgoingPayment import java.time.Instant /** Data access logic for incoming & outgoing payments */ diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt index 464db37f..0d7b26e4 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt @@ -20,18 +20,10 @@ package tech.libeufin.nexus.ebics import org.w3c.dom.Document -import tech.libeufin.common.crypto.CryptoUtil -import tech.libeufin.common.* -import tech.libeufin.nexus.* -import tech.libeufin.nexus.BankPublicKeysFile -import tech.libeufin.nexus.ClientPrivateKeysFile +import tech.libeufin.nexus.NexusConfig +import tech.libeufin.nexus.XmlBuilder +import tech.libeufin.nexus.XmlDestructor import java.io.InputStream -import java.time.Instant -import java.time.ZoneId -import java.util.* -import javax.xml.datatype.DatatypeFactory -import java.security.interfaces.* -import tech.libeufin.nexus.ebics.EbicsKeyMng.Order.* data class VersionNumber(val number: Float, val schema: String) { override fun toString(): String = "$number:$schema" diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt index 1c4294e3..754de501 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsBTS.kt @@ -18,19 +18,16 @@ */ package tech.libeufin.nexus.ebics -import io.ktor.client.* +import org.w3c.dom.Document +import tech.libeufin.common.crypto.CryptoUtil +import tech.libeufin.common.decodeBase64 +import tech.libeufin.common.encodeBase64 +import tech.libeufin.common.encodeHex +import tech.libeufin.common.encodeUpHex import tech.libeufin.nexus.* -import tech.libeufin.common.* -import tech.libeufin.common.crypto.* -import java.math.BigInteger -import java.time.* -import java.time.format.* -import java.util.* -import java.io.File -import org.w3c.dom.* -import javax.xml.datatype.XMLGregorianCalendar -import javax.xml.datatype.DatatypeFactory -import java.security.interfaces.* +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter fun Instant.xmlDate(): String = diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt index 7bed5ac0..889895ce 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt @@ -38,21 +38,18 @@ import io.ktor.client.request.* import io.ktor.client.statement.* import io.ktor.http.* import io.ktor.utils.io.jvm.javaio.* +import kotlinx.coroutines.* +import org.w3c.dom.Document +import org.xml.sax.SAXException import tech.libeufin.common.* import tech.libeufin.common.crypto.* import tech.libeufin.nexus.* -import java.io.ByteArrayOutputStream import java.io.InputStream import java.io.SequenceInputStream +import java.security.SecureRandom import java.security.interfaces.RSAPrivateCrtKey -import java.time.LocalDateTime -import java.time.format.DateTimeFormatter -import java.util.* import java.time.Instant -import kotlinx.coroutines.* -import java.security.SecureRandom -import org.w3c.dom.Document -import org.xml.sax.SAXException +import java.util.* /** * Which documents can be downloaded via EBICS. diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt index 37e26e1c..fd5a61f4 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsKeyMng.kt @@ -21,17 +21,16 @@ package tech.libeufin.nexus.ebics import org.w3c.dom.Document import tech.libeufin.common.crypto.CryptoUtil -import tech.libeufin.common.* +import tech.libeufin.common.decodeBase64 +import tech.libeufin.common.deflate +import tech.libeufin.common.encodeBase64 +import tech.libeufin.common.encodeUpHex import tech.libeufin.nexus.* -import tech.libeufin.nexus.BankPublicKeysFile -import tech.libeufin.nexus.ClientPrivateKeysFile +import tech.libeufin.nexus.ebics.EbicsKeyMng.Order.* import java.io.InputStream +import java.security.interfaces.RSAPrivateCrtKey +import java.security.interfaces.RSAPublicKey import java.time.Instant -import java.time.ZoneId -import java.util.* -import javax.xml.datatype.DatatypeFactory -import java.security.interfaces.* -import tech.libeufin.nexus.ebics.EbicsKeyMng.Order.* /** EBICS protocol for key management */ class EbicsKeyMng( diff --git a/nexus/src/test/kotlin/DatabaseTest.kt b/nexus/src/test/kotlin/DatabaseTest.kt index 6809c285..66bbe564 100644 --- a/nexus/src/test/kotlin/DatabaseTest.kt +++ b/nexus/src/test/kotlin/DatabaseTest.kt @@ -18,14 +18,13 @@ */ import org.junit.Test -import tech.libeufin.common.* -import tech.libeufin.nexus.* -import tech.libeufin.nexus.db.* -import tech.libeufin.nexus.db.InitiatedDAO.* -import tech.libeufin.nexus.db.PaymentDAO.* +import tech.libeufin.common.TalerAmount +import tech.libeufin.nexus.db.InitiatedDAO.PaymentInitiationResult import java.time.Instant -import kotlin.random.Random -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNull +import kotlin.test.assertTrue class OutgoingPaymentsTest { @Test diff --git a/nexus/src/test/kotlin/EbicsTest.kt b/nexus/src/test/kotlin/EbicsTest.kt index aa182a93..58c1ab67 100644 --- a/nexus/src/test/kotlin/EbicsTest.kt +++ b/nexus/src/test/kotlin/EbicsTest.kt @@ -20,11 +20,13 @@ import io.ktor.client.engine.mock.* import io.ktor.http.* import org.junit.Test -import tech.libeufin.nexus.* -import tech.libeufin.nexus.ebics.* +import tech.libeufin.nexus.ebics.EbicsError +import tech.libeufin.nexus.ebics.postToBank +import tech.libeufin.nexus.generateKeysPdf import kotlin.io.path.Path import kotlin.io.path.writeBytes -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith class EbicsTest { // POSTs an EBICS message to the mock bank. Tests diff --git a/nexus/src/test/kotlin/Parsing.kt b/nexus/src/test/kotlin/Parsing.kt index f5cbfb9c..7f2bb162 100644 --- a/nexus/src/test/kotlin/Parsing.kt +++ b/nexus/src/test/kotlin/Parsing.kt @@ -18,9 +18,12 @@ */ import org.junit.Test -import tech.libeufin.common.* +import tech.libeufin.common.EddsaPublicKey +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.parseIncomingTxMetadata import tech.libeufin.nexus.getAmountNoCurrency -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertFails class Parsing { diff --git a/nexus/src/test/kotlin/XmlCombinatorsTest.kt b/nexus/src/test/kotlin/XmlCombinatorsTest.kt index aeb8b327..7aeb11b0 100644 --- a/nexus/src/test/kotlin/XmlCombinatorsTest.kt +++ b/nexus/src/test/kotlin/XmlCombinatorsTest.kt @@ -18,8 +18,8 @@ */ import org.junit.Test -import tech.libeufin.nexus.XmlBuilder import tech.libeufin.nexus.XMLUtil +import tech.libeufin.nexus.XmlBuilder import kotlin.test.assertEquals class XmlCombinatorsTest { diff --git a/nexus/src/test/kotlin/XmlUtilTest.kt b/nexus/src/test/kotlin/XmlUtilTest.kt index a60e0904..4c48aa5d 100644 --- a/nexus/src/test/kotlin/XmlUtilTest.kt +++ b/nexus/src/test/kotlin/XmlUtilTest.kt @@ -23,7 +23,6 @@ import tech.libeufin.common.crypto.CryptoUtil import tech.libeufin.common.decodeBase64 import tech.libeufin.nexus.XMLUtil import java.security.KeyPairGenerator -import javax.xml.transform.stream.StreamSource class XmlUtilTest { diff --git a/nexus/src/test/kotlin/helpers.kt b/nexus/src/test/kotlin/helpers.kt index 2f02f2ec..8b7eac4a 100644 --- a/nexus/src/test/kotlin/helpers.kt +++ b/nexus/src/test/kotlin/helpers.kt @@ -21,10 +21,13 @@ import io.ktor.client.* import io.ktor.client.engine.mock.* import io.ktor.client.request.* import kotlinx.coroutines.runBlocking -import tech.libeufin.common.* -import tech.libeufin.common.db.* +import tech.libeufin.common.TalerAmount +import tech.libeufin.common.db.dbInit +import tech.libeufin.common.db.pgDataSource +import tech.libeufin.common.fromFile import tech.libeufin.nexus.* -import tech.libeufin.nexus.db.* +import tech.libeufin.nexus.db.Database +import tech.libeufin.nexus.db.InitiatedPayment import java.time.Instant import kotlin.io.path.Path diff --git a/testbench/src/main/kotlin/Main.kt b/testbench/src/main/kotlin/Main.kt index 7a3216bb..af61a94f 100644 --- a/testbench/src/main/kotlin/Main.kt +++ b/testbench/src/main/kotlin/Main.kt @@ -19,20 +19,18 @@ package tech.libeufin.testbench -import tech.libeufin.nexus.* -import tech.libeufin.bank.* -import tech.libeufin.common.* -import com.github.ajalt.clikt.core.* -import com.github.ajalt.clikt.parameters.arguments.* -import com.github.ajalt.clikt.parameters.types.* -import com.github.ajalt.clikt.testing.* +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.core.ProgramResult +import com.github.ajalt.clikt.parameters.arguments.argument +import com.github.ajalt.clikt.testing.test import io.ktor.client.* import io.ktor.client.engine.cio.* -import kotlin.test.* -import kotlin.io.path.* -import java.time.Instant import kotlinx.coroutines.runBlocking -import io.ktor.client.request.* +import tech.libeufin.nexus.LibeufinNexusCommand +import tech.libeufin.nexus.loadBankKeys +import tech.libeufin.nexus.loadClientKeys +import tech.libeufin.nexus.loadConfig +import kotlin.io.path.* val nexusCmd = LibeufinNexusCommand() val client = HttpClient(CIO) diff --git a/testbench/src/test/kotlin/IntegrationTest.kt b/testbench/src/test/kotlin/IntegrationTest.kt index a8812c8b..f24e6d92 100644 --- a/testbench/src/test/kotlin/IntegrationTest.kt +++ b/testbench/src/test/kotlin/IntegrationTest.kt @@ -17,28 +17,25 @@ * <http://www.gnu.org/licenses/> */ -import org.junit.Test -import tech.libeufin.bank.* -import tech.libeufin.nexus.* -import tech.libeufin.nexus.db.Database as NexusDb -import tech.libeufin.bank.db.AccountDAO.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* -import java.time.Instant -import java.util.Arrays -import java.sql.SQLException -import kotlinx.coroutines.runBlocking -import com.github.ajalt.clikt.testing.test import com.github.ajalt.clikt.core.CliktCommand -import org.postgresql.jdbc.PgConnection -import kotlin.test.* -import kotlin.io.path.* +import com.github.ajalt.clikt.testing.test import io.ktor.client.* import io.ktor.client.engine.cio.* import io.ktor.client.plugins.* import io.ktor.client.request.* import io.ktor.client.statement.* -import io.ktor.http.HttpStatusCode +import io.ktor.http.* +import kotlinx.coroutines.runBlocking +import org.junit.Test +import tech.libeufin.bank.* +import tech.libeufin.common.* +import tech.libeufin.common.db.one +import tech.libeufin.nexus.* +import java.time.Instant +import kotlin.io.path.Path +import kotlin.io.path.readText +import kotlin.test.assertEquals +import tech.libeufin.nexus.db.Database as NexusDb fun CliktCommand.run(cmd: String) { val result = test(cmd) diff --git a/testbench/src/test/kotlin/Iso20022Test.kt b/testbench/src/test/kotlin/Iso20022Test.kt index 55b5295e..b287d0d1 100644 --- a/testbench/src/test/kotlin/Iso20022Test.kt +++ b/testbench/src/test/kotlin/Iso20022Test.kt @@ -17,10 +17,15 @@ * <http://www.gnu.org/licenses/> */ -import tech.libeufin.nexus.* import org.junit.Test -import java.nio.file.* -import kotlin.io.path.* +import tech.libeufin.nexus.parseCustomerAck +import tech.libeufin.nexus.parseCustomerPaymentStatusReport +import tech.libeufin.nexus.parseTxNotif +import java.nio.file.Files +import kotlin.io.path.Path +import kotlin.io.path.exists +import kotlin.io.path.isDirectory +import kotlin.io.path.listDirectoryEntries class Iso20022Test { @Test diff --git a/testbench/src/test/kotlin/MigrationTest.kt b/testbench/src/test/kotlin/MigrationTest.kt index 25b72605..ac56cf20 100644 --- a/testbench/src/test/kotlin/MigrationTest.kt +++ b/testbench/src/test/kotlin/MigrationTest.kt @@ -17,20 +17,12 @@ * <http://www.gnu.org/licenses/> */ -import org.junit.Test -import tech.libeufin.bank.db.TransactionDAO.BankTransactionResult -import tech.libeufin.bank.db.WithdrawalDAO.WithdrawalCreationResult -import tech.libeufin.bank.db.* -import tech.libeufin.bank.* -import tech.libeufin.common.* -import tech.libeufin.common.db.* -import java.time.Instant -import java.util.* -import org.postgresql.jdbc.PgConnection -import kotlin.test.assertEquals import kotlinx.coroutines.runBlocking -import java.nio.file.Path -import kotlin.io.path.* +import org.junit.Test +import tech.libeufin.common.db.pgConnection +import tech.libeufin.common.db.pgDataSource +import kotlin.io.path.Path +import kotlin.io.path.readText class MigrationTest { @Test |