From 9bdaa0d32ecd9136a4c056f3385f085aef4eb222 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Fri, 13 Jun 2025 13:53:51 +0800 Subject: [PATCH] optimize imports --- .../woggioni/rbcs/api/CacheValueMetadata.java | 3 +- .../net/woggioni/rbcs/api/Configuration.java | 7 ++-- rbcs-cli/build.gradle | 11 ++----- .../graal/GraalNativeImageConfiguration.kt | 18 +++++------ .../rbcs/cli/impl/AbstractVersionProvider.kt | 2 +- .../net/woggioni/rbcs/cli/impl/RbcsCommand.kt | 2 +- .../cli/impl/commands/BenchmarkCommand.kt | 16 +++++----- .../rbcs/cli/impl/commands/ClientCommand.kt | 2 +- .../rbcs/cli/impl/commands/GetCommand.kt | 6 ++-- .../cli/impl/commands/HealthCheckCommand.kt | 4 +-- .../cli/impl/commands/PasswordHashCommand.kt | 6 ++-- .../rbcs/cli/impl/commands/PutCommand.kt | 8 ++--- .../rbcs/cli/impl/commands/ServerCommand.kt | 10 +++--- .../cli/impl/converters/DurationConverter.kt | 2 +- .../impl/converters/InputStreamConverter.kt | 2 +- .../impl/converters/OutputStreamConverter.kt | 2 +- .../net/woggioni/rbcs/client/Configuration.kt | 4 +-- .../net/woggioni/rbcs/client/impl/Parser.kt | 10 +++--- .../net/woggioni/rbcs/client/RetryTest.kt | 6 ++-- .../net/woggioni/rbcs/common/Logging.kt | 6 ++-- .../kotlin/net/woggioni/rbcs/common/RBCS.kt | 4 +-- .../kotlin/net/woggioni/rbcs/common/Xml.kt | 18 +++++------ .../rbcs/common/PasswordHashingTest.kt | 6 ++-- .../memcache/MemcacheCacheConfiguration.kt | 10 +++--- .../server/memcache/MemcacheCacheHandler.kt | 32 +++++++++---------- .../server/memcache/MemcacheCacheProvider.kt | 4 +-- .../server/memcache/client/MemcacheClient.kt | 10 +++--- .../server/memcache/client/ByteBufferTest.kt | 4 +-- .../rbcs/server/cache/FileSystemCache.kt | 8 ++--- .../cache/FileSystemCacheConfiguration.kt | 4 +-- .../server/cache/FileSystemCacheHandler.kt | 10 +++--- .../server/cache/FileSystemCacheProvider.kt | 6 ++-- .../rbcs/server/cache/InMemoryCache.kt | 7 ++-- .../cache/InMemoryCacheConfiguration.kt | 2 +- .../rbcs/server/cache/InMemoryCacheHandler.kt | 16 +++++++--- .../server/cache/InMemoryCacheProvider.kt | 4 +-- .../server/configuration/CacheSerializers.kt | 2 +- .../rbcs/server/configuration/Parser.kt | 6 ++-- .../rbcs/server/exception/ExceptionHandler.kt | 8 ++--- .../handler/ReadTriggerDuplexHandler.kt | 2 -- .../rbcs/server/handler/ServerHandler.kt | 2 +- .../rbcs/server/throttling/BucketManager.kt | 4 +-- .../server/throttling/ThrottlingHandler.kt | 4 --- .../server/test/utils/CertificateUtils.java | 19 +++++------ .../test/AbstractBasicAuthServerTest.kt | 12 +++---- .../rbcs/server/test/AbstractServerTest.kt | 2 +- .../rbcs/server/test/AbstractTlsServerTest.kt | 18 +++++------ .../rbcs/server/test/BasicAuthServerTest.kt | 10 +++--- .../rbcs/server/test/ConfigurationTest.kt | 4 +-- .../NoAnonymousUserBasicAuthServerTest.kt | 6 ++-- .../test/NoAnonymousUserTlsServerTest.kt | 6 ++-- .../rbcs/server/test/NoAuthServerTest.kt | 16 +++++----- .../rbcs/server/test/TlsServerTest.kt | 6 ++-- .../woggioni/rbcs/server/test/X500NameTest.kt | 2 +- .../net/woggioni/rbcs/servlet/CacheServlet.kt | 4 +-- 55 files changed, 201 insertions(+), 204 deletions(-) diff --git a/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheValueMetadata.java b/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheValueMetadata.java index 129b3e0..dce5407 100644 --- a/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheValueMetadata.java +++ b/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheValueMetadata.java @@ -1,9 +1,10 @@ package net.woggioni.rbcs.api; -import java.io.Serializable; import lombok.Getter; import lombok.RequiredArgsConstructor; +import java.io.Serializable; + @Getter @RequiredArgsConstructor public class CacheValueMetadata implements Serializable { diff --git a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java index d26f03a..fa24afd 100644 --- a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java +++ b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java @@ -1,15 +1,16 @@ package net.woggioni.rbcs.api; +import lombok.EqualsAndHashCode; +import lombok.NonNull; +import lombok.Value; + import java.nio.file.Path; import java.security.cert.X509Certificate; import java.time.Duration; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import lombok.EqualsAndHashCode; -import lombok.NonNull; -import lombok.Value; @Value public class Configuration { diff --git a/rbcs-cli/build.gradle b/rbcs-cli/build.gradle index 790d84d..529d72a 100644 --- a/rbcs-cli/build.gradle +++ b/rbcs-cli/build.gradle @@ -9,15 +9,10 @@ plugins { id 'maven-publish' } -import net.woggioni.gradle.envelope.EnvelopePlugin -import net.woggioni.gradle.envelope.EnvelopeJarTask -import net.woggioni.gradle.graalvm.NativeImageConfigurationTask -import net.woggioni.gradle.graalvm.NativeImageTask -import net.woggioni.gradle.graalvm.NativeImagePlugin -import net.woggioni.gradle.graalvm.UpxTask -import net.woggioni.gradle.graalvm.JlinkPlugin -import net.woggioni.gradle.graalvm.JlinkTask +import net.woggioni.gradle.envelope.EnvelopeJarTask +import net.woggioni.gradle.envelope.EnvelopePlugin +import net.woggioni.gradle.graalvm.* sourceSets { configureNativeImage { diff --git a/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt b/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt index ada8391..e8d1409 100644 --- a/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt +++ b/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt @@ -1,5 +1,12 @@ package net.woggioni.rbcs.cli.graal +import java.io.ByteArrayInputStream +import java.net.URI +import java.nio.file.Path +import java.time.Duration +import java.time.temporal.ChronoUnit +import java.util.concurrent.ExecutionException +import java.util.zip.Deflater import net.woggioni.jwo.NullOutputStream import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.api.Configuration.User @@ -9,6 +16,8 @@ import net.woggioni.rbcs.cli.impl.commands.BenchmarkCommand import net.woggioni.rbcs.cli.impl.commands.GetCommand import net.woggioni.rbcs.cli.impl.commands.HealthCheckCommand import net.woggioni.rbcs.cli.impl.commands.PutCommand +import net.woggioni.rbcs.client.Configuration as ClientConfiguration +import net.woggioni.rbcs.client.impl.Parser as ClientConfigurationParser import net.woggioni.rbcs.common.HostAndPort import net.woggioni.rbcs.common.PasswordSecurity.hashPassword import net.woggioni.rbcs.common.RBCS @@ -18,15 +27,6 @@ import net.woggioni.rbcs.server.cache.FileSystemCacheConfiguration import net.woggioni.rbcs.server.cache.InMemoryCacheConfiguration import net.woggioni.rbcs.server.configuration.Parser import net.woggioni.rbcs.server.memcache.MemcacheCacheConfiguration -import java.io.ByteArrayInputStream -import java.net.URI -import java.nio.file.Path -import java.time.Duration -import java.time.temporal.ChronoUnit -import java.util.concurrent.ExecutionException -import java.util.zip.Deflater -import net.woggioni.rbcs.client.Configuration as ClientConfiguration -import net.woggioni.rbcs.client.impl.Parser as ClientConfigurationParser object GraalNativeImageConfiguration { @JvmStatic diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/AbstractVersionProvider.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/AbstractVersionProvider.kt index 21045e8..632689c 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/AbstractVersionProvider.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/AbstractVersionProvider.kt @@ -1,9 +1,9 @@ package net.woggioni.rbcs.cli.impl -import picocli.CommandLine import java.util.jar.Attributes import java.util.jar.JarFile import java.util.jar.Manifest +import picocli.CommandLine abstract class AbstractVersionProvider : CommandLine.IVersionProvider { diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/RbcsCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/RbcsCommand.kt index d8d800a..91d3159 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/RbcsCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/RbcsCommand.kt @@ -1,8 +1,8 @@ package net.woggioni.rbcs.cli.impl +import java.nio.file.Path import net.woggioni.jwo.Application import picocli.CommandLine -import java.nio.file.Path abstract class RbcsCommand : Runnable { diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/BenchmarkCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/BenchmarkCommand.kt index ab2081d..7f30b95 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/BenchmarkCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/BenchmarkCommand.kt @@ -1,5 +1,13 @@ package net.woggioni.rbcs.cli.impl.commands +import java.security.SecureRandom +import java.time.Duration +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.util.concurrent.LinkedBlockingQueue +import java.util.concurrent.Semaphore +import java.util.concurrent.atomic.AtomicLong +import kotlin.random.Random import net.woggioni.jwo.JWO import net.woggioni.jwo.LongMath import net.woggioni.rbcs.api.CacheValueMetadata @@ -12,14 +20,6 @@ import net.woggioni.rbcs.common.debug import net.woggioni.rbcs.common.error import net.woggioni.rbcs.common.info import picocli.CommandLine -import java.security.SecureRandom -import java.time.Duration -import java.time.Instant -import java.time.temporal.ChronoUnit -import java.util.concurrent.LinkedBlockingQueue -import java.util.concurrent.Semaphore -import java.util.concurrent.atomic.AtomicLong -import kotlin.random.Random @CommandLine.Command( name = "benchmark", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ClientCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ClientCommand.kt index a43ee55..4dcb8a9 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ClientCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ClientCommand.kt @@ -1,12 +1,12 @@ package net.woggioni.rbcs.cli.impl.commands +import java.nio.file.Path import net.woggioni.jwo.Application import net.woggioni.rbcs.cli.impl.RbcsCommand import net.woggioni.rbcs.client.Configuration import net.woggioni.rbcs.common.createLogger import net.woggioni.rbcs.common.debug import picocli.CommandLine -import java.nio.file.Path @CommandLine.Command( name = "client", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/GetCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/GetCommand.kt index e7d2d45..63381ef 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/GetCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/GetCommand.kt @@ -1,13 +1,13 @@ package net.woggioni.rbcs.cli.impl.commands +import java.io.OutputStream +import java.nio.file.Files +import java.nio.file.Path import net.woggioni.rbcs.cli.impl.RbcsCommand import net.woggioni.rbcs.client.Configuration import net.woggioni.rbcs.client.RemoteBuildCacheClient import net.woggioni.rbcs.common.createLogger import picocli.CommandLine -import java.io.OutputStream -import java.nio.file.Files -import java.nio.file.Path @CommandLine.Command( name = "get", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/HealthCheckCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/HealthCheckCommand.kt index 08154d3..224e63d 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/HealthCheckCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/HealthCheckCommand.kt @@ -1,12 +1,12 @@ package net.woggioni.rbcs.cli.impl.commands +import java.security.SecureRandom +import kotlin.random.Random import net.woggioni.rbcs.cli.impl.RbcsCommand import net.woggioni.rbcs.client.Configuration import net.woggioni.rbcs.client.RemoteBuildCacheClient import net.woggioni.rbcs.common.createLogger import picocli.CommandLine -import java.security.SecureRandom -import kotlin.random.Random @CommandLine.Command( name = "health", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PasswordHashCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PasswordHashCommand.kt index 7111cec..3862524 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PasswordHashCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PasswordHashCommand.kt @@ -1,13 +1,13 @@ package net.woggioni.rbcs.cli.impl.commands +import java.io.OutputStream +import java.io.OutputStreamWriter +import java.io.PrintWriter import net.woggioni.jwo.UncloseableOutputStream import net.woggioni.rbcs.cli.impl.RbcsCommand import net.woggioni.rbcs.cli.impl.converters.OutputStreamConverter import net.woggioni.rbcs.common.PasswordSecurity.hashPassword import picocli.CommandLine -import java.io.OutputStream -import java.io.OutputStreamWriter -import java.io.PrintWriter @CommandLine.Command( diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PutCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PutCommand.kt index cdd6fbd..5e6d10f 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PutCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/PutCommand.kt @@ -1,5 +1,9 @@ package net.woggioni.rbcs.cli.impl.commands +import java.io.InputStream +import java.nio.file.Files +import java.nio.file.Path +import java.util.UUID import net.woggioni.jwo.Hash import net.woggioni.jwo.JWO import net.woggioni.jwo.NullOutputStream @@ -9,10 +13,6 @@ import net.woggioni.rbcs.client.Configuration import net.woggioni.rbcs.client.RemoteBuildCacheClient import net.woggioni.rbcs.common.createLogger import picocli.CommandLine -import java.io.InputStream -import java.nio.file.Files -import java.nio.file.Path -import java.util.UUID @CommandLine.Command( name = "put", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ServerCommand.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ServerCommand.kt index 2ad4a07..46af626 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ServerCommand.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/commands/ServerCommand.kt @@ -1,5 +1,10 @@ package net.woggioni.rbcs.cli.impl.commands +import java.io.ByteArrayOutputStream +import java.nio.file.Files +import java.nio.file.Path +import java.time.Duration +import java.util.concurrent.TimeUnit import net.woggioni.jwo.Application import net.woggioni.jwo.JWO import net.woggioni.rbcs.cli.impl.RbcsCommand @@ -10,11 +15,6 @@ import net.woggioni.rbcs.common.info import net.woggioni.rbcs.server.RemoteBuildCacheServer import net.woggioni.rbcs.server.RemoteBuildCacheServer.Companion.DEFAULT_CONFIGURATION_URL import picocli.CommandLine -import java.io.ByteArrayOutputStream -import java.nio.file.Files -import java.nio.file.Path -import java.time.Duration -import java.util.concurrent.TimeUnit @CommandLine.Command( name = "server", diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/DurationConverter.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/DurationConverter.kt index 62229fe..158a417 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/DurationConverter.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/DurationConverter.kt @@ -1,7 +1,7 @@ package net.woggioni.rbcs.cli.impl.converters -import picocli.CommandLine import java.time.Duration +import picocli.CommandLine class DurationConverter : CommandLine.ITypeConverter { diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/InputStreamConverter.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/InputStreamConverter.kt index f31e36b..81f5605 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/InputStreamConverter.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/InputStreamConverter.kt @@ -1,9 +1,9 @@ package net.woggioni.rbcs.cli.impl.converters -import picocli.CommandLine import java.io.InputStream import java.nio.file.Files import java.nio.file.Paths +import picocli.CommandLine class InputStreamConverter : CommandLine.ITypeConverter { diff --git a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/OutputStreamConverter.kt b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/OutputStreamConverter.kt index f385a51..8c16f40 100644 --- a/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/OutputStreamConverter.kt +++ b/rbcs-cli/src/main/kotlin/net/woggioni/rbcs/cli/impl/converters/OutputStreamConverter.kt @@ -1,9 +1,9 @@ package net.woggioni.rbcs.cli.impl.converters -import picocli.CommandLine import java.io.OutputStream import java.nio.file.Files import java.nio.file.Paths +import picocli.CommandLine class OutputStreamConverter : CommandLine.ITypeConverter { diff --git a/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/Configuration.kt b/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/Configuration.kt index 019f7b3..53e55a9 100644 --- a/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/Configuration.kt +++ b/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/Configuration.kt @@ -1,13 +1,13 @@ package net.woggioni.rbcs.client -import net.woggioni.rbcs.client.impl.Parser -import net.woggioni.rbcs.common.Xml import java.net.URI import java.nio.file.Files import java.nio.file.Path import java.security.PrivateKey import java.security.cert.X509Certificate import java.time.Duration +import net.woggioni.rbcs.client.impl.Parser +import net.woggioni.rbcs.common.Xml data class Configuration( val profiles: Map diff --git a/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/impl/Parser.kt b/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/impl/Parser.kt index 1d53129..f41680a 100644 --- a/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/impl/Parser.kt +++ b/rbcs-client/src/main/kotlin/net/woggioni/rbcs/client/impl/Parser.kt @@ -1,10 +1,5 @@ package net.woggioni.rbcs.client.impl -import net.woggioni.rbcs.api.exception.ConfigurationException -import net.woggioni.rbcs.client.Configuration -import net.woggioni.rbcs.common.Xml.Companion.asIterable -import net.woggioni.rbcs.common.Xml.Companion.renderAttribute -import org.w3c.dom.Document import java.net.URI import java.nio.file.Files import java.nio.file.Path @@ -13,6 +8,11 @@ import java.security.PrivateKey import java.security.cert.X509Certificate import java.time.Duration import java.time.temporal.ChronoUnit +import net.woggioni.rbcs.api.exception.ConfigurationException +import net.woggioni.rbcs.client.Configuration +import net.woggioni.rbcs.common.Xml.Companion.asIterable +import net.woggioni.rbcs.common.Xml.Companion.renderAttribute +import org.w3c.dom.Document object Parser { diff --git a/rbcs-client/src/test/kotlin/net/woggioni/rbcs/client/RetryTest.kt b/rbcs-client/src/test/kotlin/net/woggioni/rbcs/client/RetryTest.kt index f7075cc..3dc82e7 100644 --- a/rbcs-client/src/test/kotlin/net/woggioni/rbcs/client/RetryTest.kt +++ b/rbcs-client/src/test/kotlin/net/woggioni/rbcs/client/RetryTest.kt @@ -2,6 +2,9 @@ package net.woggioni.rbcs.client import io.netty.util.concurrent.DefaultEventExecutorGroup import io.netty.util.concurrent.EventExecutorGroup +import java.util.concurrent.CompletableFuture +import java.util.stream.Stream +import kotlin.random.Random import net.woggioni.rbcs.common.contextLogger import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.extension.ExtensionContext @@ -9,9 +12,6 @@ import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.Arguments import org.junit.jupiter.params.provider.ArgumentsProvider import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.concurrent.CompletableFuture -import java.util.stream.Stream -import kotlin.random.Random class RetryTest { diff --git a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Logging.kt b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Logging.kt index b0e7c13..821dc9a 100644 --- a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Logging.kt +++ b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Logging.kt @@ -2,14 +2,14 @@ package net.woggioni.rbcs.common import io.netty.channel.Channel import io.netty.channel.ChannelHandlerContext +import java.nio.file.Files +import java.nio.file.Path +import java.util.logging.LogManager import org.slf4j.Logger import org.slf4j.LoggerFactory import org.slf4j.MDC import org.slf4j.event.Level import org.slf4j.spi.LoggingEventBuilder -import java.nio.file.Files -import java.nio.file.Path -import java.util.logging.LogManager inline fun T.contextLogger() = LoggerFactory.getLogger(T::class.java) inline fun createLogger() = LoggerFactory.getLogger(T::class.java) diff --git a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/RBCS.kt b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/RBCS.kt index a9c534a..6aa8064 100644 --- a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/RBCS.kt +++ b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/RBCS.kt @@ -1,7 +1,5 @@ package net.woggioni.rbcs.common -import net.woggioni.jwo.JWO -import net.woggioni.jwo.Tuple2 import java.io.IOException import java.net.InetAddress import java.net.ServerSocket @@ -21,6 +19,8 @@ import java.security.cert.X509Certificate import java.util.EnumSet import javax.net.ssl.TrustManagerFactory import javax.net.ssl.X509TrustManager +import net.woggioni.jwo.JWO +import net.woggioni.jwo.Tuple2 object RBCS { fun String.toUrl() : URL = URL.of(URI(this), null) diff --git a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Xml.kt b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Xml.kt index 3648fbd..4963d60 100644 --- a/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Xml.kt +++ b/rbcs-common/src/main/kotlin/net/woggioni/rbcs/common/Xml.kt @@ -1,14 +1,5 @@ package net.woggioni.rbcs.common -import net.woggioni.jwo.JWO -import org.slf4j.event.Level -import org.w3c.dom.Document -import org.w3c.dom.Element -import org.w3c.dom.Node -import org.w3c.dom.NodeList -import org.xml.sax.SAXNotRecognizedException -import org.xml.sax.SAXNotSupportedException -import org.xml.sax.SAXParseException import java.io.InputStream import java.io.OutputStream import java.net.URL @@ -25,7 +16,16 @@ import javax.xml.transform.stream.StreamResult import javax.xml.transform.stream.StreamSource import javax.xml.validation.Schema import javax.xml.validation.SchemaFactory +import net.woggioni.jwo.JWO +import org.slf4j.event.Level +import org.w3c.dom.Document +import org.w3c.dom.Element +import org.w3c.dom.Node +import org.w3c.dom.NodeList import org.xml.sax.ErrorHandler as ErrHandler +import org.xml.sax.SAXNotRecognizedException +import org.xml.sax.SAXNotSupportedException +import org.xml.sax.SAXParseException class NodeListIterator(private val nodeList: NodeList) : Iterator { diff --git a/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/PasswordHashingTest.kt b/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/PasswordHashingTest.kt index ef3733f..2b8f287 100644 --- a/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/PasswordHashingTest.kt +++ b/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/PasswordHashingTest.kt @@ -1,14 +1,14 @@ package net.woggioni.rbcs.common +import java.security.Provider +import java.security.Security +import java.util.Base64 import net.woggioni.rbcs.common.PasswordSecurity.decodePasswordHash import net.woggioni.rbcs.common.PasswordSecurity.hashPassword import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.EnumSource -import java.security.Provider -import java.security.Security -import java.util.Base64 class PasswordHashingTest { diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt index de1b604..ac4cf41 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt @@ -5,17 +5,17 @@ import io.netty.channel.EventLoopGroup import io.netty.channel.pool.FixedChannelPool import io.netty.channel.socket.DatagramChannel import io.netty.channel.socket.SocketChannel +import java.time.Duration +import java.util.concurrent.CompletableFuture +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.atomic.AtomicInteger +import java.util.concurrent.atomic.AtomicReference import net.woggioni.rbcs.api.CacheHandler import net.woggioni.rbcs.api.CacheHandlerFactory import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.common.HostAndPort import net.woggioni.rbcs.common.createLogger import net.woggioni.rbcs.server.memcache.client.MemcacheClient -import java.time.Duration -import java.util.concurrent.CompletableFuture -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.atomic.AtomicInteger -import java.util.concurrent.atomic.AtomicReference data class MemcacheCacheConfiguration( val servers: List, diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheHandler.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheHandler.kt index 7adaaf5..980d557 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheHandler.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheHandler.kt @@ -3,6 +3,7 @@ package net.woggioni.rbcs.server.memcache import io.netty.buffer.ByteBuf import io.netty.buffer.ByteBufAllocator import io.netty.buffer.CompositeByteBuf +import io.netty.channel.Channel as NettyChannel import io.netty.channel.ChannelHandlerContext import io.netty.handler.codec.memcache.DefaultLastMemcacheContent import io.netty.handler.codec.memcache.DefaultMemcacheContent @@ -12,6 +13,21 @@ import io.netty.handler.codec.memcache.binary.BinaryMemcacheOpcodes import io.netty.handler.codec.memcache.binary.BinaryMemcacheResponse import io.netty.handler.codec.memcache.binary.BinaryMemcacheResponseStatus import io.netty.handler.codec.memcache.binary.DefaultBinaryMemcacheRequest +import java.io.ByteArrayOutputStream +import java.io.ObjectInputStream +import java.io.ObjectOutputStream +import java.nio.ByteBuffer +import java.nio.channels.Channels +import java.nio.channels.FileChannel +import java.nio.channels.ReadableByteChannel +import java.nio.file.Files +import java.nio.file.StandardOpenOption +import java.time.Duration +import java.time.Instant +import java.util.concurrent.CompletableFuture +import java.util.zip.Deflater +import java.util.zip.DeflaterOutputStream +import java.util.zip.InflaterOutputStream import net.woggioni.rbcs.api.CacheHandler import net.woggioni.rbcs.api.CacheValueMetadata import net.woggioni.rbcs.api.exception.ContentTooLargeException @@ -34,22 +50,6 @@ import net.woggioni.rbcs.common.trace import net.woggioni.rbcs.server.memcache.client.MemcacheClient import net.woggioni.rbcs.server.memcache.client.MemcacheRequestController import net.woggioni.rbcs.server.memcache.client.MemcacheResponseHandler -import java.io.ByteArrayOutputStream -import java.io.ObjectInputStream -import java.io.ObjectOutputStream -import java.nio.ByteBuffer -import java.nio.channels.Channels -import java.nio.channels.FileChannel -import java.nio.channels.ReadableByteChannel -import java.nio.file.Files -import java.nio.file.StandardOpenOption -import java.time.Duration -import java.time.Instant -import java.util.concurrent.CompletableFuture -import java.util.zip.Deflater -import java.util.zip.DeflaterOutputStream -import java.util.zip.InflaterOutputStream -import io.netty.channel.Channel as NettyChannel class MemcacheCacheHandler( private val client: MemcacheClient, diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt index c7ebee0..25d86eb 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt @@ -1,5 +1,7 @@ package net.woggioni.rbcs.server.memcache +import java.time.Duration +import java.time.temporal.ChronoUnit import net.woggioni.rbcs.api.CacheProvider import net.woggioni.rbcs.api.exception.ConfigurationException import net.woggioni.rbcs.common.HostAndPort @@ -9,8 +11,6 @@ import net.woggioni.rbcs.common.Xml.Companion.asIterable import net.woggioni.rbcs.common.Xml.Companion.renderAttribute import org.w3c.dom.Document import org.w3c.dom.Element -import java.time.Duration -import java.time.temporal.ChronoUnit class MemcacheCacheProvider : CacheProvider { diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/client/MemcacheClient.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/client/MemcacheClient.kt index dd31b21..07e37ab 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/client/MemcacheClient.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/client/MemcacheClient.kt @@ -20,17 +20,17 @@ import io.netty.handler.codec.memcache.MemcacheObject import io.netty.handler.codec.memcache.binary.BinaryMemcacheClientCodec import io.netty.handler.codec.memcache.binary.BinaryMemcacheRequest import io.netty.handler.codec.memcache.binary.BinaryMemcacheResponse +import io.netty.util.concurrent.Future as NettyFuture import io.netty.util.concurrent.GenericFutureListener +import java.io.IOException +import java.net.InetSocketAddress +import java.util.concurrent.CompletableFuture +import java.util.concurrent.ConcurrentHashMap import net.woggioni.rbcs.common.HostAndPort import net.woggioni.rbcs.common.createLogger import net.woggioni.rbcs.common.trace import net.woggioni.rbcs.server.memcache.MemcacheCacheConfiguration import net.woggioni.rbcs.server.memcache.MemcacheCacheHandler -import java.io.IOException -import java.net.InetSocketAddress -import java.util.concurrent.CompletableFuture -import java.util.concurrent.ConcurrentHashMap -import io.netty.util.concurrent.Future as NettyFuture class MemcacheClient( diff --git a/rbcs-server-memcache/src/test/kotlin/net/woggioni/rbcs/server/memcache/client/ByteBufferTest.kt b/rbcs-server-memcache/src/test/kotlin/net/woggioni/rbcs/server/memcache/client/ByteBufferTest.kt index 5086dde..21df339 100644 --- a/rbcs-server-memcache/src/test/kotlin/net/woggioni/rbcs/server/memcache/client/ByteBufferTest.kt +++ b/rbcs-server-memcache/src/test/kotlin/net/woggioni/rbcs/server/memcache/client/ByteBufferTest.kt @@ -2,12 +2,12 @@ package net.woggioni.rbcs.server.memcache.client import io.netty.buffer.ByteBufUtil import io.netty.buffer.Unpooled -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test import java.io.ByteArrayInputStream import java.nio.ByteBuffer import java.nio.channels.Channels import kotlin.random.Random +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test class ByteBufferTest { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCache.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCache.kt index 724f060..cefab14 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCache.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCache.kt @@ -1,9 +1,5 @@ package net.woggioni.rbcs.server.cache -import net.woggioni.jwo.JWO -import net.woggioni.rbcs.api.AsyncCloseable -import net.woggioni.rbcs.api.CacheValueMetadata -import net.woggioni.rbcs.common.createLogger import java.io.ByteArrayOutputStream import java.io.InputStream import java.io.ObjectInputStream @@ -20,6 +16,10 @@ import java.nio.file.attribute.BasicFileAttributes import java.time.Duration import java.time.Instant import java.util.concurrent.CompletableFuture +import net.woggioni.jwo.JWO +import net.woggioni.rbcs.api.AsyncCloseable +import net.woggioni.rbcs.api.CacheValueMetadata +import net.woggioni.rbcs.common.createLogger class FileSystemCache( val root: Path, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt index 1c44a10..9a867c8 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt @@ -4,12 +4,12 @@ import io.netty.channel.ChannelFactory import io.netty.channel.EventLoopGroup import io.netty.channel.socket.DatagramChannel import io.netty.channel.socket.SocketChannel +import java.nio.file.Path +import java.time.Duration import net.woggioni.jwo.Application import net.woggioni.rbcs.api.CacheHandlerFactory import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.common.RBCS -import java.nio.file.Path -import java.time.Duration data class FileSystemCacheConfiguration( val root: Path?, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheHandler.kt index 86a0c1e..96ca8d6 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheHandler.kt @@ -4,6 +4,11 @@ import io.netty.buffer.ByteBuf import io.netty.channel.ChannelHandlerContext import io.netty.handler.codec.http.LastHttpContent import io.netty.handler.stream.ChunkedNioFile +import java.nio.channels.Channels +import java.util.Base64 +import java.util.zip.Deflater +import java.util.zip.DeflaterOutputStream +import java.util.zip.InflaterInputStream import net.woggioni.rbcs.api.CacheHandler import net.woggioni.rbcs.api.message.CacheMessage import net.woggioni.rbcs.api.message.CacheMessage.CacheContent @@ -14,11 +19,6 @@ import net.woggioni.rbcs.api.message.CacheMessage.CacheValueFoundResponse import net.woggioni.rbcs.api.message.CacheMessage.CacheValueNotFoundResponse import net.woggioni.rbcs.api.message.CacheMessage.LastCacheContent import net.woggioni.rbcs.common.RBCS.processCacheKey -import java.nio.channels.Channels -import java.util.Base64 -import java.util.zip.Deflater -import java.util.zip.DeflaterOutputStream -import java.util.zip.InflaterInputStream class FileSystemCacheHandler( private val cache: FileSystemCache, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt index a708433..d5112ce 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt @@ -1,14 +1,14 @@ package net.woggioni.rbcs.server.cache +import java.nio.file.Path +import java.time.Duration +import java.util.zip.Deflater import net.woggioni.rbcs.api.CacheProvider import net.woggioni.rbcs.common.RBCS import net.woggioni.rbcs.common.Xml import net.woggioni.rbcs.common.Xml.Companion.renderAttribute import org.w3c.dom.Document import org.w3c.dom.Element -import java.nio.file.Path -import java.time.Duration -import java.util.zip.Deflater class FileSystemCacheProvider : CacheProvider { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCache.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCache.kt index 0f6e56c..dc8055a 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCache.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCache.kt @@ -1,9 +1,6 @@ package net.woggioni.rbcs.server.cache import io.netty.buffer.ByteBuf -import net.woggioni.rbcs.api.AsyncCloseable -import net.woggioni.rbcs.api.CacheValueMetadata -import net.woggioni.rbcs.common.createLogger import java.time.Duration import java.time.Instant import java.util.PriorityQueue @@ -11,7 +8,9 @@ import java.util.concurrent.CompletableFuture import java.util.concurrent.TimeUnit import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.withLock -import net.woggioni.rbcs.common.debug +import net.woggioni.rbcs.api.AsyncCloseable +import net.woggioni.rbcs.api.CacheValueMetadata +import net.woggioni.rbcs.common.createLogger private class CacheKey(private val value: ByteArray) { override fun equals(other: Any?) = if (other is CacheKey) { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt index 11d3d8d..99491f7 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt @@ -4,10 +4,10 @@ import io.netty.channel.ChannelFactory import io.netty.channel.EventLoopGroup import io.netty.channel.socket.DatagramChannel import io.netty.channel.socket.SocketChannel +import java.time.Duration import net.woggioni.rbcs.api.CacheHandlerFactory import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.common.RBCS -import java.time.Duration data class InMemoryCacheConfiguration( val maxAge: Duration, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheHandler.kt index 7b62d40..22ef8c1 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheHandler.kt @@ -2,14 +2,20 @@ package net.woggioni.rbcs.server.cache import io.netty.buffer.ByteBuf import io.netty.channel.ChannelHandlerContext -import net.woggioni.rbcs.api.CacheHandler -import net.woggioni.rbcs.api.message.CacheMessage -import net.woggioni.rbcs.api.message.CacheMessage.* -import net.woggioni.rbcs.common.ByteBufOutputStream -import net.woggioni.rbcs.common.RBCS.processCacheKey import java.util.zip.Deflater import java.util.zip.DeflaterOutputStream import java.util.zip.InflaterOutputStream +import net.woggioni.rbcs.api.CacheHandler +import net.woggioni.rbcs.api.message.CacheMessage +import net.woggioni.rbcs.api.message.CacheMessage.CacheContent +import net.woggioni.rbcs.api.message.CacheMessage.CacheGetRequest +import net.woggioni.rbcs.api.message.CacheMessage.CachePutRequest +import net.woggioni.rbcs.api.message.CacheMessage.CachePutResponse +import net.woggioni.rbcs.api.message.CacheMessage.CacheValueFoundResponse +import net.woggioni.rbcs.api.message.CacheMessage.CacheValueNotFoundResponse +import net.woggioni.rbcs.api.message.CacheMessage.LastCacheContent +import net.woggioni.rbcs.common.ByteBufOutputStream +import net.woggioni.rbcs.common.RBCS.processCacheKey class InMemoryCacheHandler( private val cache: InMemoryCache, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt index 51f88ba..c231bc0 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt @@ -1,13 +1,13 @@ package net.woggioni.rbcs.server.cache +import java.time.Duration +import java.util.zip.Deflater import net.woggioni.rbcs.api.CacheProvider import net.woggioni.rbcs.common.RBCS import net.woggioni.rbcs.common.Xml import net.woggioni.rbcs.common.Xml.Companion.renderAttribute import org.w3c.dom.Document import org.w3c.dom.Element -import java.time.Duration -import java.util.zip.Deflater class InMemoryCacheProvider : CacheProvider { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/CacheSerializers.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/CacheSerializers.kt index 4efff37..2cc708c 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/CacheSerializers.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/CacheSerializers.kt @@ -1,8 +1,8 @@ package net.woggioni.rbcs.server.configuration +import java.util.ServiceLoader import net.woggioni.rbcs.api.CacheProvider import net.woggioni.rbcs.api.Configuration -import java.util.ServiceLoader object CacheSerializers { val index = (Configuration::class.java.module.layer?.let { layer -> diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt index 4ab3b36..01b1589 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt @@ -1,5 +1,8 @@ package net.woggioni.rbcs.server.configuration +import java.nio.file.Paths +import java.time.Duration +import java.time.temporal.ChronoUnit import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.api.Configuration.Authentication import net.woggioni.rbcs.api.Configuration.BasicAuthentication @@ -18,9 +21,6 @@ import net.woggioni.rbcs.common.Xml.Companion.renderAttribute import org.w3c.dom.Document import org.w3c.dom.Element import org.w3c.dom.TypeInfo -import java.nio.file.Paths -import java.time.Duration -import java.time.temporal.ChronoUnit object Parser { fun parse(document: Document): Configuration { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt index 3d6b90e..4474cf8 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt @@ -13,6 +13,10 @@ import io.netty.handler.codec.http.HttpResponseStatus import io.netty.handler.codec.http.HttpVersion import io.netty.handler.timeout.ReadTimeoutException import io.netty.handler.timeout.WriteTimeoutException +import java.net.ConnectException +import java.net.SocketException +import javax.net.ssl.SSLException +import javax.net.ssl.SSLPeerUnverifiedException import net.woggioni.rbcs.api.exception.CacheException import net.woggioni.rbcs.api.exception.ContentTooLargeException import net.woggioni.rbcs.common.contextLogger @@ -20,10 +24,6 @@ import net.woggioni.rbcs.common.debug import net.woggioni.rbcs.common.log import org.slf4j.event.Level import org.slf4j.spi.LoggingEventBuilder -import java.net.ConnectException -import java.net.SocketException -import javax.net.ssl.SSLException -import javax.net.ssl.SSLPeerUnverifiedException @Sharable object ExceptionHandler : ChannelDuplexHandler() { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ReadTriggerDuplexHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ReadTriggerDuplexHandler.kt index ad679c6..b87eac8 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ReadTriggerDuplexHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ReadTriggerDuplexHandler.kt @@ -5,8 +5,6 @@ import io.netty.channel.ChannelHandler.Sharable import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelPromise import io.netty.handler.codec.http.LastHttpContent -import net.woggioni.rbcs.common.createLogger -import net.woggioni.rbcs.common.debug @Sharable object ReadTriggerDuplexHandler : ChannelDuplexHandler() { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ServerHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ServerHandler.kt index 06e0d02..48ca18c 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ServerHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ServerHandler.kt @@ -18,6 +18,7 @@ import io.netty.handler.codec.http.HttpResponseStatus import io.netty.handler.codec.http.HttpUtil import io.netty.handler.codec.http.HttpVersion import io.netty.handler.codec.http.LastHttpContent +import java.nio.file.Path import net.woggioni.rbcs.api.CacheValueMetadata import net.woggioni.rbcs.api.message.CacheMessage import net.woggioni.rbcs.api.message.CacheMessage.CacheContent @@ -31,7 +32,6 @@ import net.woggioni.rbcs.common.createLogger import net.woggioni.rbcs.common.debug import net.woggioni.rbcs.common.warn import net.woggioni.rbcs.server.exception.ExceptionHandler -import java.nio.file.Path class ServerHandler(private val serverPrefix: Path, private val cacheHandlerSupplier : () -> ChannelHandler) : ChannelDuplexHandler() { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/BucketManager.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/BucketManager.kt index 55aba66..24b0d60 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/BucketManager.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/BucketManager.kt @@ -1,11 +1,11 @@ package net.woggioni.rbcs.server.throttling -import net.woggioni.jwo.Bucket -import net.woggioni.rbcs.api.Configuration import java.net.InetSocketAddress import java.util.Arrays import java.util.concurrent.ConcurrentHashMap import java.util.function.Function +import net.woggioni.jwo.Bucket +import net.woggioni.rbcs.api.Configuration class BucketManager private constructor( private val bucketsByUser: Map> = HashMap(), diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/ThrottlingHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/ThrottlingHandler.kt index 8b0ba74..0a8ece1 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/ThrottlingHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/throttling/ThrottlingHandler.kt @@ -5,7 +5,6 @@ import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter import io.netty.handler.codec.http.DefaultFullHttpResponse import io.netty.handler.codec.http.FullHttpMessage -import io.netty.handler.codec.http.HttpContent import io.netty.handler.codec.http.HttpHeaderNames import io.netty.handler.codec.http.HttpRequest import io.netty.handler.codec.http.HttpResponseStatus @@ -15,10 +14,7 @@ import java.net.InetSocketAddress import java.time.Duration import java.time.temporal.ChronoUnit import java.util.ArrayDeque -import java.util.LinkedList import java.util.concurrent.TimeUnit -import kotlin.collections.forEach -import kotlin.collections.isNotEmpty import net.woggioni.jwo.Bucket import net.woggioni.jwo.LongMath import net.woggioni.rbcs.api.Configuration diff --git a/rbcs-server/src/test/java/net/woggioni/rbcs/server/test/utils/CertificateUtils.java b/rbcs-server/src/test/java/net/woggioni/rbcs/server/test/utils/CertificateUtils.java index 16452c0..09a7a93 100644 --- a/rbcs-server/src/test/java/net/woggioni/rbcs/server/test/utils/CertificateUtils.java +++ b/rbcs-server/src/test/java/net/woggioni/rbcs/server/test/utils/CertificateUtils.java @@ -1,14 +1,5 @@ package net.woggioni.rbcs.server.test.utils; -import java.math.BigInteger; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.PrivateKey; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.Date; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.x500.X500Name; import org.bouncycastle.asn1.x509.BasicConstraints; @@ -24,6 +15,16 @@ import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder; import org.bouncycastle.operator.ContentSigner; import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import java.math.BigInteger; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.PrivateKey; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Date; + public class CertificateUtils { public record X509Credentials( diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt index 2db0704..2e40072 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt @@ -1,11 +1,5 @@ package net.woggioni.rbcs.server.test -import net.woggioni.rbcs.api.Configuration -import net.woggioni.rbcs.api.Role -import net.woggioni.rbcs.common.RBCS.getFreePort -import net.woggioni.rbcs.common.Xml -import net.woggioni.rbcs.server.cache.FileSystemCacheConfiguration -import net.woggioni.rbcs.server.configuration.Serializer import java.net.URI import java.net.http.HttpRequest import java.nio.charset.StandardCharsets @@ -15,6 +9,12 @@ import java.time.temporal.ChronoUnit import java.util.Base64 import java.util.zip.Deflater import kotlin.random.Random +import net.woggioni.rbcs.api.Configuration +import net.woggioni.rbcs.api.Role +import net.woggioni.rbcs.common.RBCS.getFreePort +import net.woggioni.rbcs.common.Xml +import net.woggioni.rbcs.server.cache.FileSystemCacheConfiguration +import net.woggioni.rbcs.server.configuration.Serializer abstract class AbstractBasicAuthServerTest : AbstractServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractServerTest.kt index df4383d..960fb4f 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractServerTest.kt @@ -1,5 +1,6 @@ package net.woggioni.rbcs.server.test +import java.nio.file.Path import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.server.RemoteBuildCacheServer import org.junit.jupiter.api.AfterAll @@ -8,7 +9,6 @@ import org.junit.jupiter.api.MethodOrderer import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestMethodOrder import org.junit.jupiter.api.io.TempDir -import java.nio.file.Path @TestInstance(TestInstance.Lifecycle.PER_CLASS) diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt index 8dd18b5..719e3bb 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt @@ -1,14 +1,5 @@ package net.woggioni.rbcs.server.test -import net.woggioni.rbcs.api.Configuration -import net.woggioni.rbcs.api.Role -import net.woggioni.rbcs.common.RBCS.getFreePort -import net.woggioni.rbcs.common.Xml -import net.woggioni.rbcs.server.cache.FileSystemCacheConfiguration -import net.woggioni.rbcs.server.configuration.Serializer -import net.woggioni.rbcs.server.test.utils.CertificateUtils -import net.woggioni.rbcs.server.test.utils.CertificateUtils.X509Credentials -import org.bouncycastle.asn1.x500.X500Name import java.net.URI import java.net.http.HttpClient import java.net.http.HttpRequest @@ -25,6 +16,15 @@ import javax.net.ssl.KeyManagerFactory import javax.net.ssl.SSLContext import javax.net.ssl.TrustManagerFactory import kotlin.random.Random +import net.woggioni.rbcs.api.Configuration +import net.woggioni.rbcs.api.Role +import net.woggioni.rbcs.common.RBCS.getFreePort +import net.woggioni.rbcs.common.Xml +import net.woggioni.rbcs.server.cache.FileSystemCacheConfiguration +import net.woggioni.rbcs.server.configuration.Serializer +import net.woggioni.rbcs.server.test.utils.CertificateUtils +import net.woggioni.rbcs.server.test.utils.CertificateUtils.X509Credentials +import org.bouncycastle.asn1.x500.X500Name abstract class AbstractTlsServerTest : AbstractServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/BasicAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/BasicAuthServerTest.kt index 836ccb7..316455c 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/BasicAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/BasicAuthServerTest.kt @@ -1,17 +1,17 @@ package net.woggioni.rbcs.server.test import io.netty.handler.codec.http.HttpResponseStatus +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse +import java.time.Duration +import java.time.temporal.ChronoUnit import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.api.Role import net.woggioni.rbcs.common.PasswordSecurity.hashPassword import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test -import java.net.http.HttpClient -import java.net.http.HttpRequest -import java.net.http.HttpResponse -import java.time.Duration -import java.time.temporal.ChronoUnit class BasicAuthServerTest : AbstractBasicAuthServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/ConfigurationTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/ConfigurationTest.kt index fc8f7b4..4c6d366 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/ConfigurationTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/ConfigurationTest.kt @@ -1,5 +1,7 @@ package net.woggioni.rbcs.server.test +import java.nio.file.Files +import java.nio.file.Path import net.woggioni.rbcs.common.RBCS.toUrl import net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory import net.woggioni.rbcs.common.Xml @@ -10,8 +12,6 @@ import org.junit.jupiter.api.io.TempDir import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.ValueSource import org.xml.sax.SAXParseException -import java.nio.file.Files -import java.nio.file.Path class ConfigurationTest { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserBasicAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserBasicAuthServerTest.kt index e6f41bb..f4e59f6 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserBasicAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserBasicAuthServerTest.kt @@ -1,14 +1,14 @@ package net.woggioni.rbcs.server.test import io.netty.handler.codec.http.HttpResponseStatus +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.common.PasswordSecurity.hashPassword import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test -import java.net.http.HttpClient -import java.net.http.HttpRequest -import java.net.http.HttpResponse class NoAnonymousUserBasicAuthServerTest : AbstractBasicAuthServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserTlsServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserTlsServerTest.kt index af168db..a0fbd2f 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserTlsServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAnonymousUserTlsServerTest.kt @@ -1,13 +1,13 @@ package net.woggioni.rbcs.server.test import io.netty.handler.codec.http.HttpResponseStatus +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse import net.woggioni.rbcs.api.Configuration import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test -import java.net.http.HttpClient -import java.net.http.HttpRequest -import java.net.http.HttpResponse class NoAnonymousUserTlsServerTest : AbstractTlsServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt index b7480cd..1c52bf0 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt @@ -1,14 +1,6 @@ package net.woggioni.rbcs.server.test import io.netty.handler.codec.http.HttpResponseStatus -import net.woggioni.rbcs.api.Configuration -import net.woggioni.rbcs.common.RBCS.getFreePort -import net.woggioni.rbcs.common.Xml -import net.woggioni.rbcs.server.cache.InMemoryCacheConfiguration -import net.woggioni.rbcs.server.configuration.Serializer -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Order -import org.junit.jupiter.api.Test import java.net.URI import java.net.http.HttpClient import java.net.http.HttpRequest @@ -19,6 +11,14 @@ import java.time.temporal.ChronoUnit import java.util.Base64 import java.util.zip.Deflater import kotlin.random.Random +import net.woggioni.rbcs.api.Configuration +import net.woggioni.rbcs.common.RBCS.getFreePort +import net.woggioni.rbcs.common.Xml +import net.woggioni.rbcs.server.cache.InMemoryCacheConfiguration +import net.woggioni.rbcs.server.configuration.Serializer +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Order +import org.junit.jupiter.api.Test class NoAuthServerTest : AbstractServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/TlsServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/TlsServerTest.kt index b5cd196..2ac8315 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/TlsServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/TlsServerTest.kt @@ -1,15 +1,15 @@ package net.woggioni.rbcs.server.test import io.netty.handler.codec.http.HttpResponseStatus +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.api.Role import org.bouncycastle.asn1.x500.X500Name import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test -import java.net.http.HttpClient -import java.net.http.HttpRequest -import java.net.http.HttpResponse class TlsServerTest : AbstractTlsServerTest() { diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/X500NameTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/X500NameTest.kt index 6306278..ca2a1fe 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/X500NameTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/X500NameTest.kt @@ -1,8 +1,8 @@ package net.woggioni.rbcs.server.test +import javax.naming.ldap.LdapName import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import javax.naming.ldap.LdapName class X500NameTest { diff --git a/rbcs-servlet/src/main/kotlin/net/woggioni/rbcs/servlet/CacheServlet.kt b/rbcs-servlet/src/main/kotlin/net/woggioni/rbcs/servlet/CacheServlet.kt index 92e95c8..bd5713a 100644 --- a/rbcs-servlet/src/main/kotlin/net/woggioni/rbcs/servlet/CacheServlet.kt +++ b/rbcs-servlet/src/main/kotlin/net/woggioni/rbcs/servlet/CacheServlet.kt @@ -7,8 +7,6 @@ import jakarta.servlet.annotation.WebServlet import jakarta.servlet.http.HttpServlet import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletResponse -import net.woggioni.jwo.HttpClient.HttpStatus -import net.woggioni.jwo.JWO import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.nio.file.Path @@ -19,6 +17,8 @@ import java.util.concurrent.PriorityBlockingQueue import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicLong import java.util.logging.Logger +import net.woggioni.jwo.HttpClient.HttpStatus +import net.woggioni.jwo.JWO private class CacheKey(private val value: ByteArray) {