From 3af09dc6f5ef7e4443eb51ffa719f540b099dfba Mon Sep 17 00:00:00 2001 From: Kanro Date: Fri, 26 Feb 2021 20:43:20 +0800 Subject: [PATCH] :art: Format code by jetbrains official code style (#150) * :art: Format code by jetbrains official code style * :art: Make ktlint happy --- CHANGELOG.md | 199 ++++++++++++------ ReadMe.md | 59 ++++-- buildSrc/build.gradle.kts | 2 +- .../bybutter/sisyphus/data/BaseEncoding.kt | 6 +- .../com/bybutter/sisyphus/data/BitStream.kt | 4 +- .../kotlin/com/bybutter/sisyphus/io/Path.kt | 10 +- .../com/bybutter/sisyphus/math/Vector.kt | 3 + .../bybutter/sisyphus/reflect/GenericType.kt | 2 +- .../com/bybutter/sisyphus/reflect/JvmType.kt | 6 +- .../com/bybutter/sisyphus/spring/BeanUtils.kt | 32 ++- .../com/bybutter/sisyphus/string/Case.kt | 3 +- .../bybutter/sisyphus/string/PathMatcher.kt | 16 +- .../com/bybutter/sisyphus/string/Version.kt | 6 +- .../string/case/CommonWordSplitter.kt | 50 ++++- .../string/pluralize/PluralizeUtil.kt | 54 ++++- .../bybutter/sisyphus/uri/JdbcURIBuilder.kt | 1 + .../bybutter/sisyphus/dsl/cel/CelRuntime.kt | 4 +- .../sisyphus/rpc/AbstractCoroutineStub.kt | 30 ++- .../sisyphus/rpc/ClientExceptionResolver.kt | 3 +- .../protobuf/jackson/ProtoDeserializer.kt | 3 +- .../protobuf/jackson/ProtoSerializer.kt | 16 +- .../com/bybutter/sisyphus/jackson/Cbor.kt | 8 +- .../com/bybutter/sisyphus/jackson/Json.kt | 10 +- .../bybutter/sisyphus/jackson/Properties.kt | 8 +- .../com/bybutter/sisyphus/jackson/Smile.kt | 8 +- .../com/bybutter/sisyphus/jackson/Yaml.kt | 10 +- .../sisyphus/protobuf/AbstractMessage.kt | 11 +- .../protobuf/AbstractMutableMessage.kt | 5 +- .../bybutter/sisyphus/protobuf/EnumSupport.kt | 3 +- .../sisyphus/protobuf/MessagePatcher.kt | 2 +- .../bybutter/sisyphus/protobuf/ProtoTypes.kt | 13 +- .../sisyphus/protobuf/coded/Reader.kt | 17 +- .../protobuf/primitives/TimestampExtension.kt | 28 ++- .../protobuf/primitives/TypeExtension.kt | 5 +- .../amqp/DefaultAmqpTemplateFactory.kt | 8 +- .../middleware/amqp/MessageQueueRegistrar.kt | 4 +- .../configuration/GradlePropertiesProvider.kt | 12 +- .../configuration/SisyphusProperty.kt | 10 +- .../middleware/configuration/maven/Aether.kt | 3 +- .../main/resources/META-INF/spring.factories | 1 - .../elastic/DefaultElasticClientFactory.kt | 2 +- .../elastic/ElasticClientRegistrar.kt | 4 +- .../middleware/grpc/ClientRegistrar.kt | 5 +- .../middleware/grpc/RequestContext.kt | 3 +- .../middleware/hbase/HTableTemplate.kt | 14 +- .../hbase/HTableTemplateRegistrar.kt | 4 +- .../middleware/hbase/HTemplateFactory.kt | 7 +- .../middleware/hbase/TableModelConverter.kt | 2 +- .../converter/DefaultTableModelConverter.kt | 32 +-- .../hbase/converter/EnumConverter.kt | 2 +- .../hbase/converter/StringEnumConverter.kt | 2 +- .../jdbc/AbstractDslContextFactory.kt | 10 +- .../middleware/jdbc/DslContextRegistrar.kt | 4 +- .../proto/order/TableBasedOrderByBuilder.kt | 5 +- .../CoroutineTransactionContext.kt | 4 +- .../SisyphusTransactionProvider.kt | 3 +- .../TransactionSavePointContext.kt | 5 +- .../middleware/jdbc/test/TransactionTest.kt | 14 +- .../autoconfigure/MongoClientRegistrar.kt | 4 +- .../main/resources/META-INF/spring.factories | 1 - .../redis/DefaultRedisClientFactory.kt | 5 +- .../redis/RedisConnectionRegistrar.kt | 4 +- .../middleware/redis/cache/CacheDSL.kt | 38 +++- .../middleware/redis/cache/LettuceCache.kt | 7 +- .../redis/cache/MultiRedisCacheManager.kt | 7 +- .../redis/cache/annotation/MultiCacheEvict.kt | 13 +- .../redis/cache/annotation/MultiCachePut.kt | 13 +- .../redis/cache/annotation/MultiCacheable.kt | 13 +- .../redis/cache/config/MultiCacheConfig.kt | 20 +- .../interceptor/MultiCacheEvictInterceptor.kt | 33 ++- .../interceptor/MultiCachePutInterceptor.kt | 38 +++- .../interceptor/MultiCacheableInterceptor.kt | 43 +++- .../cache/interceptor/common/KeyGenerator.kt | 32 ++- .../OkHttpClientBuilderInterceptor.kt | 7 +- .../retrofit/RetrofitBuilderInterceptor.kt | 7 +- .../retrofit/RetrofitClientsRegistrar.kt | 33 +-- .../middleware/retrofit/RetrofitProperty.kt | 10 +- .../rocketmq/RocketMqResourceFactory.kt | 6 +- .../build.gradle.kts | 4 +- .../starter/grpc/LocalClientRepository.kt | 29 ++- .../sisyphus/starter/grpc/ServiceRegistrar.kt | 10 +- .../starter/grpc/support/RequestLogger.kt | 5 +- .../metrics/MicrometerRequestLogger.kt | 6 +- .../SisyphusMetricsAutoConfiguration.kt | 10 +- .../support/reflection/ReflectionService.kt | 9 +- .../reflection/ReflectionServiceAlpha.kt | 9 +- .../transcoding/TranscodingCallListener.kt | 12 +- .../TranscodingCorsConfigurationSource.kt | 5 +- .../TranscodingErrorWebExceptionHandler.kt | 9 +- .../TranscodingMethodRouterFunction.kt | 10 +- .../TranscodingNotSupportExceptionMapper.kt | 3 +- .../TranscodingServiceRouterFunction.kt | 3 +- .../codec/ProtobufCodecCustomizer.kt | 5 +- .../grpc/transcoding/codec/ProtobufDecoder.kt | 7 +- .../grpc/transcoding/codec/ProtobufEncoder.kt | 11 +- ...GrpcTranscodingMetricsAutoConfiguration.kt | 18 +- .../GrpcTranscodingWebFluxTagsContributor.kt | 13 +- .../support/swagger/SwaggerProperty.kt | 4 + .../support/swagger/SwaggerRouterFunction.kt | 2 +- .../starter/jackson/JacksonAutoRegister.kt | 5 +- .../cbor/Jackson2CborCodecCustomizer.kt | 6 +- .../smile/Jackson2SmileCodecCustomizer.kt | 5 +- .../yaml/Jackson2YamlCodecCustomizer.kt | 15 +- .../jackson/yaml/Jackson2YamlDecoder.kt | 5 +- .../jackson/yaml/Jackson2YamlEncoder.kt | 5 +- .../protobuf/type/TypeReflectionFunction.kt | 2 +- .../AutoGracefulShutdownConfigurator.kt | 10 +- .../CorsConfigurationSourceRegistrar.kt | 5 +- .../project/gradle/SisyphusExtension.kt | 27 ++- .../bybutter/sisyphus/project/gradle/Utils.kt | 5 +- .../gradle/threepart/SisyphusDockerPlugin.kt | 10 +- .../protobuf/gradle/ExtractProtoTask.kt | 12 +- .../protobuf/gradle/ProtobufAndroidPlugin.kt | 4 +- .../protobuf/gradle/ProtobufApiLintTask.kt | 22 +- .../protobuf/gradle/ProtobufJvmPlugin.kt | 108 +++++++--- .../compiler/rpc/CoroutineServiceGenerator.kt | 8 +- .../protobuf/compiler/test/ProtoTest.kt | 30 +-- .../google/protobuf/descriptor.proto | 6 +- .../protobuf/test/resource_name.proto | 10 +- 119 files changed, 1117 insertions(+), 498 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b73a14a..6217be5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,157 +1,216 @@ # Changelog + ## 0.0.7 (2020-08-31) ### Fixed -- 🐛 Workaround for crashing with project plugin(KT-37435) [[4792b9c](https://github.com/ButterCam/sisyphus/commit/4792b9cef990def1a15df9a723672ed18f432f4b)] - +- 🐛 Workaround for crashing with project plugin( + KT-37435) [[4792b9c](https://github.com/ButterCam/sisyphus/commit/4792b9cef990def1a15df9a723672ed18f432f4b)] + ## 0.0.6 (2020-08-28) ### Added -- ✨ Common operation api support ([#65](https://github.com/ButterCam/sisyphus/issues/65)) [[6b1a442](https://github.com/ButterCam/sisyphus/commit/6b1a442b9f12e01dcd1405ffae7e551d9c054f8c)] +- ✨ Common operation api + support ([#65](https://github.com/ButterCam/sisyphus/issues/65)) [[6b1a442](https://github.com/ButterCam/sisyphus/commit/6b1a442b9f12e01dcd1405ffae7e551d9c054f8c)] ### Changed -- ⬆️ Upgrade to kotlin 1.4.0 ([#64](https://github.com/ButterCam/sisyphus/issues/64)) [[f67cc97](https://github.com/ButterCam/sisyphus/commit/f67cc97ae108ec2d4698d436564e321966869560)] - +- ⬆️ Upgrade to kotlin + 1.4.0 ([#64](https://github.com/ButterCam/sisyphus/issues/64)) [[f67cc97](https://github.com/ButterCam/sisyphus/commit/f67cc97ae108ec2d4698d436564e321966869560)] + ## 0.0.5 (2020-07-17) ### Miscellaneous -- Make api linter runner as simple java library ([#51](https://github.com/ButterCam/sisyphus/issues/51)) [[6caf955](https://github.com/ButterCam/sisyphus/commit/6caf955c015800d7a54fc75bd1a6f50018789c72)] -- Publish to gradle portal when release ([#50](https://github.com/ButterCam/sisyphus/issues/50)) [[93507ed](https://github.com/ButterCam/sisyphus/commit/93507edce4fa705d55e47e6aa7f324bdd098173f)] -- Upgrade dependencies ([#48](https://github.com/ButterCam/sisyphus/issues/48)) [[c04a8e1](https://github.com/ButterCam/sisyphus/commit/c04a8e148cb13307d54594a49fd52c7cd6709498)] -- Make api linter working with windows ([#45](https://github.com/ButterCam/sisyphus/issues/45)) [[8108fec](https://github.com/ButterCam/sisyphus/commit/8108fecee921691f8a80a98e3c7fc4242c4b7e14)] -- Add api linter gradle plugin ([#44](https://github.com/ButterCam/sisyphus/issues/44)) [[9cf8b72](https://github.com/ButterCam/sisyphus/commit/9cf8b72a18d696768e9e8360f22223ce379c7e94)] -- Fix serializing for map with google.protobuf.Any value ([#43](https://github.com/ButterCam/sisyphus/issues/43)) [[ba3aaab](https://github.com/ButterCam/sisyphus/commit/ba3aaab0166ddca2fcdbe30145f281cb459c353f)] -- Add kubernetes label auto register [service-discovery] ([#42](https://github.com/ButterCam/sisyphus/issues/42)) [[68e14a4](https://github.com/ButterCam/sisyphus/commit/68e14a4f031ac597e9626be066e2dbf8b15372c1)] -- Fix repeated custom type can't be converted in message patcher ([#41](https://github.com/ButterCam/sisyphus/issues/41)) [[4f31749](https://github.com/ButterCam/sisyphus/commit/4f3174920b205dda2c8625fa55dc3016b46c24a4)] -- Add channel lifecycle ([#39](https://github.com/ButterCam/sisyphus/issues/39)) [[ea62519](https://github.com/ButterCam/sisyphus/commit/ea62519f039ba1bc88d52f1da0a7945844273c55)] -- Update gradle to 6.5.1 ([#40](https://github.com/ButterCam/sisyphus/issues/40)) [[7ad3990](https://github.com/ButterCam/sisyphus/commit/7ad399033bc1df02674763f29edde0f530c9ca49)] -- Build release when a pre-release is changed to a release ([#38](https://github.com/ButterCam/sisyphus/issues/38)) [[13dcd9d](https://github.com/ButterCam/sisyphus/commit/13dcd9de1c0383f80d6e7c1522ce85928508cfdd)] - +- Make api linter runner as simple java + library ([#51](https://github.com/ButterCam/sisyphus/issues/51)) [[6caf955](https://github.com/ButterCam/sisyphus/commit/6caf955c015800d7a54fc75bd1a6f50018789c72)] +- Publish to gradle portal when + release ([#50](https://github.com/ButterCam/sisyphus/issues/50)) [[93507ed](https://github.com/ButterCam/sisyphus/commit/93507edce4fa705d55e47e6aa7f324bdd098173f)] +- Upgrade + dependencies ([#48](https://github.com/ButterCam/sisyphus/issues/48)) [[c04a8e1](https://github.com/ButterCam/sisyphus/commit/c04a8e148cb13307d54594a49fd52c7cd6709498)] +- Make api linter working with + windows ([#45](https://github.com/ButterCam/sisyphus/issues/45)) [[8108fec](https://github.com/ButterCam/sisyphus/commit/8108fecee921691f8a80a98e3c7fc4242c4b7e14)] +- Add api linter gradle + plugin ([#44](https://github.com/ButterCam/sisyphus/issues/44)) [[9cf8b72](https://github.com/ButterCam/sisyphus/commit/9cf8b72a18d696768e9e8360f22223ce379c7e94)] +- Fix serializing for map with google.protobuf.Any + value ([#43](https://github.com/ButterCam/sisyphus/issues/43)) [[ba3aaab](https://github.com/ButterCam/sisyphus/commit/ba3aaab0166ddca2fcdbe30145f281cb459c353f)] +- Add kubernetes label auto + register [service-discovery] ([#42](https://github.com/ButterCam/sisyphus/issues/42)) [[68e14a4](https://github.com/ButterCam/sisyphus/commit/68e14a4f031ac597e9626be066e2dbf8b15372c1)] +- Fix repeated custom type can't be converted in message + patcher ([#41](https://github.com/ButterCam/sisyphus/issues/41)) [[4f31749](https://github.com/ButterCam/sisyphus/commit/4f3174920b205dda2c8625fa55dc3016b46c24a4)] +- Add channel + lifecycle ([#39](https://github.com/ButterCam/sisyphus/issues/39)) [[ea62519](https://github.com/ButterCam/sisyphus/commit/ea62519f039ba1bc88d52f1da0a7945844273c55)] +- Update gradle to + 6.5.1 ([#40](https://github.com/ButterCam/sisyphus/issues/40)) [[7ad3990](https://github.com/ButterCam/sisyphus/commit/7ad399033bc1df02674763f29edde0f530c9ca49)] +- Build release when a pre-release is changed to a + release ([#38](https://github.com/ButterCam/sisyphus/issues/38)) [[13dcd9d](https://github.com/ButterCam/sisyphus/commit/13dcd9de1c0383f80d6e7c1522ce85928508cfdd)] + ## 0.0.4 (2020-06-24) ### Miscellaneous -- Fixed service discovery bugs ([#34](https://github.com/ButterCam/sisyphus/issues/34)) [[b9a5268](https://github.com/ButterCam/sisyphus/commit/b9a52683a869671ea320bc8aadd16556f929bf44)] -- Disable publish to Github Package ([#37](https://github.com/ButterCam/sisyphus/issues/37)) [[0402428](https://github.com/ButterCam/sisyphus/commit/04024282348e6ba4096220054e09e5a4fd047994)] -- Fix github url for gradle publish ([#36](https://github.com/ButterCam/sisyphus/issues/36)) [[526e4de](https://github.com/ButterCam/sisyphus/commit/526e4deadb3d6aee2b9ebf3fed9f4cc4348f0584)] -- Publish artifact to Github Package ([#35](https://github.com/ButterCam/sisyphus/issues/35)) [[29c10a9](https://github.com/ButterCam/sisyphus/commit/29c10a9d4b18759f013e21335e77200468a51d96)] -- Upgrade dependencies ([#33](https://github.com/ButterCam/sisyphus/issues/33)) [[65a3d4f](https://github.com/ButterCam/sisyphus/commit/65a3d4fdcb90e95dcad3746540238011c52b9cac)] -- Add kubernetes service discovery ([#32](https://github.com/ButterCam/sisyphus/issues/32)) [[0954725](https://github.com/ButterCam/sisyphus/commit/0954725576088e3ebdf5a2c8aa9aa21e5c75ead3)] - +- Fixed service discovery + bugs ([#34](https://github.com/ButterCam/sisyphus/issues/34)) [[b9a5268](https://github.com/ButterCam/sisyphus/commit/b9a52683a869671ea320bc8aadd16556f929bf44)] +- Disable publish to Github + Package ([#37](https://github.com/ButterCam/sisyphus/issues/37)) [[0402428](https://github.com/ButterCam/sisyphus/commit/04024282348e6ba4096220054e09e5a4fd047994)] +- Fix github url for gradle + publish ([#36](https://github.com/ButterCam/sisyphus/issues/36)) [[526e4de](https://github.com/ButterCam/sisyphus/commit/526e4deadb3d6aee2b9ebf3fed9f4cc4348f0584)] +- Publish artifact to Github + Package ([#35](https://github.com/ButterCam/sisyphus/issues/35)) [[29c10a9](https://github.com/ButterCam/sisyphus/commit/29c10a9d4b18759f013e21335e77200468a51d96)] +- Upgrade + dependencies ([#33](https://github.com/ButterCam/sisyphus/issues/33)) [[65a3d4f](https://github.com/ButterCam/sisyphus/commit/65a3d4fdcb90e95dcad3746540238011c52b9cac)] +- Add kubernetes service + discovery ([#32](https://github.com/ButterCam/sisyphus/issues/32)) [[0954725](https://github.com/ButterCam/sisyphus/commit/0954725576088e3ebdf5a2c8aa9aa21e5c75ead3)] + ## 0.0.3 (2020-06-08) ### Miscellaneous -- Change swagger resources path ([#24](https://github.com/ButterCam/sisyphus/issues/24)) [[efb706e](https://github.com/ButterCam/sisyphus/commit/efb706ef4a65a7863c44997bbc325c03f22f7323)] -- Support 'BUILD_VERSION' env for customizing version ([#23](https://github.com/ButterCam/sisyphus/issues/23)) [[0bbd737](https://github.com/ButterCam/sisyphus/commit/0bbd7371209ed515b1590fa5c7ccf3947dcb61ef)] -- Add 'grpc-service-name' header for http transcoding method signing. ([#22](https://github.com/ButterCam/sisyphus/issues/22)) [[80fcd5d](https://github.com/ButterCam/sisyphus/commit/80fcd5d441b717375fa47a370b12ac65b82c82c7)] -- Add defer logger for 'ConfigArtifactProvider' ([#21](https://github.com/ButterCam/sisyphus/issues/21)) [[787c33a](https://github.com/ButterCam/sisyphus/commit/787c33afcbdfa76fe22cbd570a64e40cdb544b58)] -- Fix Swagger bug. ([#19](https://github.com/ButterCam/sisyphus/issues/19)) [[c157a5c](https://github.com/ButterCam/sisyphus/commit/c157a5c2bce23a638a22ac89182fc7abaaaf7526)] -- Upgrade sisyphus plugins to 0.0.2 ([#18](https://github.com/ButterCam/sisyphus/issues/18)) [[127ddcc](https://github.com/ButterCam/sisyphus/commit/127ddcc7f28b6c41636f96e8840655b196ee417a)] - +- Change swagger resources + path ([#24](https://github.com/ButterCam/sisyphus/issues/24)) [[efb706e](https://github.com/ButterCam/sisyphus/commit/efb706ef4a65a7863c44997bbc325c03f22f7323)] +- Support 'BUILD_VERSION' env for customizing + version ([#23](https://github.com/ButterCam/sisyphus/issues/23)) [[0bbd737](https://github.com/ButterCam/sisyphus/commit/0bbd7371209ed515b1590fa5c7ccf3947dcb61ef)] +- Add 'grpc-service-name' header for http transcoding method + signing. ([#22](https://github.com/ButterCam/sisyphus/issues/22)) [[80fcd5d](https://github.com/ButterCam/sisyphus/commit/80fcd5d441b717375fa47a370b12ac65b82c82c7)] +- Add defer logger for + 'ConfigArtifactProvider' ([#21](https://github.com/ButterCam/sisyphus/issues/21)) [[787c33a](https://github.com/ButterCam/sisyphus/commit/787c33afcbdfa76fe22cbd570a64e40cdb544b58)] +- Fix Swagger + bug. ([#19](https://github.com/ButterCam/sisyphus/issues/19)) [[c157a5c](https://github.com/ButterCam/sisyphus/commit/c157a5c2bce23a638a22ac89182fc7abaaaf7526)] +- Upgrade sisyphus plugins to + 0.0.2 ([#18](https://github.com/ButterCam/sisyphus/issues/18)) [[127ddcc](https://github.com/ButterCam/sisyphus/commit/127ddcc7f28b6c41636f96e8840655b196ee417a)] + ## 0.0.2 (2020-05-26) ### Miscellaneous -- Generate gRPC service and client based on grpc-kotlin ([#17](https://github.com/ButterCam/sisyphus/issues/17)) [[c3db7a0](https://github.com/ButterCam/sisyphus/commit/c3db7a0b6684852f7c75271473ba860ea7588955)] -- Fix wrong dependency for license plugin ([#9](https://github.com/ButterCam/sisyphus/issues/9)) [[34896db](https://github.com/ButterCam/sisyphus/commit/34896db7c8f89dd5809dbc88ac9ab57e3f16c94a)] -- Fix wrong version generated in jenkins when build release tag ([#8](https://github.com/ButterCam/sisyphus/issues/8)) [[a5f02c5](https://github.com/ButterCam/sisyphus/commit/a5f02c5cbab731e5edbda181290926c1a243ea56)] -- Publish plugins to gradle portal when release created ([#7](https://github.com/ButterCam/sisyphus/issues/7)) [[6a22aff](https://github.com/ButterCam/sisyphus/commit/6a22aff72a496f21ae0b25e01e0bd2c322099bcc)] - +- Generate gRPC service and client based on + grpc-kotlin ([#17](https://github.com/ButterCam/sisyphus/issues/17)) [[c3db7a0](https://github.com/ButterCam/sisyphus/commit/c3db7a0b6684852f7c75271473ba860ea7588955)] +- Fix wrong dependency for license + plugin ([#9](https://github.com/ButterCam/sisyphus/issues/9)) [[34896db](https://github.com/ButterCam/sisyphus/commit/34896db7c8f89dd5809dbc88ac9ab57e3f16c94a)] +- Fix wrong version generated in jenkins when build release + tag ([#8](https://github.com/ButterCam/sisyphus/issues/8)) [[a5f02c5](https://github.com/ButterCam/sisyphus/commit/a5f02c5cbab731e5edbda181290926c1a243ea56)] +- Publish plugins to gradle portal when release + created ([#7](https://github.com/ButterCam/sisyphus/issues/7)) [[6a22aff](https://github.com/ButterCam/sisyphus/commit/6a22aff72a496f21ae0b25e01e0bd2c322099bcc)] + ## 0.0.1 (2020-05-22) ### Added -- 🎉 Initial commit for sisyphus project [[276ab47](https://github.com/ButterCam/sisyphus/commit/276ab47a0924e29ae4e59fe0f9230a0c99a99203)] +- 🎉 Initial commit for sisyphus + project [[276ab47](https://github.com/ButterCam/sisyphus/commit/276ab47a0924e29ae4e59fe0f9230a0c99a99203)] ### Miscellaneous -- Support autoconfig for docker plugin ([#5](https://github.com/ButterCam/sisyphus/issues/5)) [[e4ce818](https://github.com/ButterCam/sisyphus/commit/e4ce8180386b79aea3e4a42fed309f75528f9382)] -- Support graceful shutdown for gRPC server ([#6](https://github.com/ButterCam/sisyphus/issues/6)) [[7371a52](https://github.com/ButterCam/sisyphus/commit/7371a5211289f437bdcc0fe61a6730678b09a1f5)] -- Fix 'ConditionalOnMissingBean' not work with component scan ([#4](https://github.com/ButterCam/sisyphus/issues/4)) [[9226109](https://github.com/ButterCam/sisyphus/commit/922610969b67fa96d17214fa4c41b3e02ef8e966)] -- Skip publish to internal nexus ([#3](https://github.com/ButterCam/sisyphus/issues/3)) [[5377f7d](https://github.com/ButterCam/sisyphus/commit/5377f7d173825a5c42d27db22037aa44d1fec2fd)] -- Fix errors and bugs in internal usage ([#2](https://github.com/ButterCam/sisyphus/issues/2)) [[8f8e57a](https://github.com/ButterCam/sisyphus/commit/8f8e57a8fc45cca6f4c7ad55c99583ff26752a0e)] -- Release prepare for 0.0.1 ([#1](https://github.com/ButterCam/sisyphus/issues/1)) [[d7a19dc](https://github.com/ButterCam/sisyphus/commit/d7a19dcb0883eccb9c1a9ed8a9c34a88e29c1881)] -- Add LICENSE [[59e9ae3](https://github.com/ButterCam/sisyphus/commit/59e9ae38ac8cece9fac5cf054eb3dcc5cd7436fe)] - +- Support autoconfig for docker + plugin ([#5](https://github.com/ButterCam/sisyphus/issues/5)) [[e4ce818](https://github.com/ButterCam/sisyphus/commit/e4ce8180386b79aea3e4a42fed309f75528f9382)] +- Support graceful shutdown for gRPC + server ([#6](https://github.com/ButterCam/sisyphus/issues/6)) [[7371a52](https://github.com/ButterCam/sisyphus/commit/7371a5211289f437bdcc0fe61a6730678b09a1f5)] +- Fix 'ConditionalOnMissingBean' not work with component + scan ([#4](https://github.com/ButterCam/sisyphus/issues/4)) [[9226109](https://github.com/ButterCam/sisyphus/commit/922610969b67fa96d17214fa4c41b3e02ef8e966)] +- Skip publish to internal + nexus ([#3](https://github.com/ButterCam/sisyphus/issues/3)) [[5377f7d](https://github.com/ButterCam/sisyphus/commit/5377f7d173825a5c42d27db22037aa44d1fec2fd)] +- Fix errors and bugs in internal + usage ([#2](https://github.com/ButterCam/sisyphus/issues/2)) [[8f8e57a](https://github.com/ButterCam/sisyphus/commit/8f8e57a8fc45cca6f4c7ad55c99583ff26752a0e)] +- Release prepare for + 0.0.1 ([#1](https://github.com/ButterCam/sisyphus/issues/1)) [[d7a19dc](https://github.com/ButterCam/sisyphus/commit/d7a19dcb0883eccb9c1a9ed8a9c34a88e29c1881)] +- Add LICENSE [[59e9ae3](https://github.com/ButterCam/sisyphus/commit/59e9ae38ac8cece9fac5cf054eb3dcc5cd7436fe)] + ## 0.0.6-M3 (2020-08-27) ### Added -- ✨ Add copyFrom and fillFrom method for MutableMessage ([#62](https://github.com/ButterCam/sisyphus/issues/62)) [[3581332](https://github.com/ButterCam/sisyphus/commit/3581332d02041002bd0b711046d1690a304a2b51)] -- ✨ Supported for redis database modification and add jooq page util ([#63](https://github.com/ButterCam/sisyphus/issues/63)) [[f6da309](https://github.com/ButterCam/sisyphus/commit/f6da3092a646c58e61ca4a049ab26165cdda3e78)] -- ✨ Support base32 and more base coding ([#61](https://github.com/ButterCam/sisyphus/issues/61)) [[224db19](https://github.com/ButterCam/sisyphus/commit/224db198fc45acc82ec3082b02e9b89a9c663bd7)] -- ✨ Support configure database for redis ([#60](https://github.com/ButterCam/sisyphus/issues/60)) [[25847f3](https://github.com/ButterCam/sisyphus/commit/25847f31b92a9de33576595da55501904edd6186)] +- ✨ Add copyFrom and fillFrom method for + MutableMessage ([#62](https://github.com/ButterCam/sisyphus/issues/62)) [[3581332](https://github.com/ButterCam/sisyphus/commit/3581332d02041002bd0b711046d1690a304a2b51)] +- ✨ Supported for redis database modification and add jooq page + util ([#63](https://github.com/ButterCam/sisyphus/issues/63)) [[f6da309](https://github.com/ButterCam/sisyphus/commit/f6da3092a646c58e61ca4a049ab26165cdda3e78)] +- ✨ Support base32 and more base + coding ([#61](https://github.com/ButterCam/sisyphus/issues/61)) [[224db19](https://github.com/ButterCam/sisyphus/commit/224db198fc45acc82ec3082b02e9b89a9c663bd7)] +- ✨ Support configure database for + redis ([#60](https://github.com/ButterCam/sisyphus/issues/60)) [[25847f3](https://github.com/ButterCam/sisyphus/commit/25847f31b92a9de33576595da55501904edd6186)] ### Changed -- 🚸 Prepare upgrade to kotlin 1.4.0 [[8a3ed62](https://github.com/ButterCam/sisyphus/commit/8a3ed6241f7ac707e3bdaa090840d3f9e8c958d7)] - +- 🚸 Prepare upgrade to kotlin + 1.4.0 [[8a3ed62](https://github.com/ButterCam/sisyphus/commit/8a3ed6241f7ac707e3bdaa090840d3f9e8c958d7)] + ## 0.0.6-M2 (2020-07-29) ### Fixed -- 🐛 Fix dependency of jGit ([#59](https://github.com/ButterCam/sisyphus/issues/59)) [[67f534e](https://github.com/ButterCam/sisyphus/commit/67f534e9c62833d32ba93bfd03fbc3c1f81f52e6)] - +- 🐛 Fix dependency of + jGit ([#59](https://github.com/ButterCam/sisyphus/issues/59)) [[67f534e](https://github.com/ButterCam/sisyphus/commit/67f534e9c62833d32ba93bfd03fbc3c1f81f52e6)] + ## 0.0.6-M1 (2020-07-28) ### Fixed -- 🐛 Make configuration as proto generate task input ([#58](https://github.com/ButterCam/sisyphus/issues/58)) [[96334fd](https://github.com/ButterCam/sisyphus/commit/96334fde6b045cde9e2d429cd89aa546496bb820)] - +- 🐛 Make configuration as proto generate task + input ([#58](https://github.com/ButterCam/sisyphus/issues/58)) [[96334fd](https://github.com/ButterCam/sisyphus/commit/96334fde6b045cde9e2d429cd89aa546496bb820)] + ## 0.0.6-M0 (2020-07-27) ### Changed -- 🔧 Add gitmoji changelog support ([#56](https://github.com/ButterCam/sisyphus/issues/56)) [[f14eb09](https://github.com/ButterCam/sisyphus/commit/f14eb09a041acdab830b0baf9aa972ca0f0e4821)] -- ♻️ Separate proto from lib module ([#55](https://github.com/ButterCam/sisyphus/issues/55)) [[26a1121](https://github.com/ButterCam/sisyphus/commit/26a1121e4265d31982970820e76715e29547b934)] +- 🔧 Add gitmoji changelog + support ([#56](https://github.com/ButterCam/sisyphus/issues/56)) [[f14eb09](https://github.com/ButterCam/sisyphus/commit/f14eb09a041acdab830b0baf9aa972ca0f0e4821)] +- ♻️ Separate proto from lib + module ([#55](https://github.com/ButterCam/sisyphus/issues/55)) [[26a1121](https://github.com/ButterCam/sisyphus/commit/26a1121e4265d31982970820e76715e29547b934)] ### Miscellaneous -- 📝 Update changelog ([#57](https://github.com/ButterCam/sisyphus/issues/57)) [[b647b6f](https://github.com/ButterCam/sisyphus/commit/b647b6fc5a5fd1c07ff604e08a99d7c368c5144c)] -- Add gradle and jdk badge ([#54](https://github.com/ButterCam/sisyphus/issues/54)) [[a99e5e0](https://github.com/ButterCam/sisyphus/commit/a99e5e03c6d8be25801e09c0fb2a987fefd089bf)] -- Add unit tests for sisyphus-grpc cel module ([#49](https://github.com/ButterCam/sisyphus/issues/49)) [[a8cf64d](https://github.com/ButterCam/sisyphus/commit/a8cf64dcd410f26186c99630e83da948527f99a9)] -- Throw exception when running cel with syntax error ([#53](https://github.com/ButterCam/sisyphus/issues/53)) [[f9ecd10](https://github.com/ButterCam/sisyphus/commit/f9ecd10049698f600e2f30704d0df2c4736bf86b)] -- Add zoneId parameter for create timestamp ([#52](https://github.com/ButterCam/sisyphus/issues/52)) [[be95e2b](https://github.com/ButterCam/sisyphus/commit/be95e2bb4897252c3f6adebe65daa3cc7af78178)] - +- 📝 Update + changelog ([#57](https://github.com/ButterCam/sisyphus/issues/57)) [[b647b6f](https://github.com/ButterCam/sisyphus/commit/b647b6fc5a5fd1c07ff604e08a99d7c368c5144c)] +- Add gradle and jdk + badge ([#54](https://github.com/ButterCam/sisyphus/issues/54)) [[a99e5e0](https://github.com/ButterCam/sisyphus/commit/a99e5e03c6d8be25801e09c0fb2a987fefd089bf)] +- Add unit tests for sisyphus-grpc cel + module ([#49](https://github.com/ButterCam/sisyphus/issues/49)) [[a8cf64d](https://github.com/ButterCam/sisyphus/commit/a8cf64dcd410f26186c99630e83da948527f99a9)] +- Throw exception when running cel with syntax + error ([#53](https://github.com/ButterCam/sisyphus/issues/53)) [[f9ecd10](https://github.com/ButterCam/sisyphus/commit/f9ecd10049698f600e2f30704d0df2c4736bf86b)] +- Add zoneId parameter for create + timestamp ([#52](https://github.com/ButterCam/sisyphus/issues/52)) [[be95e2b](https://github.com/ButterCam/sisyphus/commit/be95e2bb4897252c3f6adebe65daa3cc7af78178)] + ## 0.0.4-M0 (2020-06-16) ### Miscellaneous -- Clear warning for read descriptor file ([#31](https://github.com/ButterCam/sisyphus/issues/31)) [[8db2a71](https://github.com/ButterCam/sisyphus/commit/8db2a7131f40a5945eab08a55946806872aa8a12)] -- Refactor metrics ([#30](https://github.com/ButterCam/sisyphus/issues/30)) [[223cc0c](https://github.com/ButterCam/sisyphus/commit/223cc0c3e5ac3c2c9f98a3204e2672263e4b8b07)] -- Add Micrometer Prometheus timer interceptor ([#29](https://github.com/ButterCam/sisyphus/issues/29)) [[ac9ad45](https://github.com/ButterCam/sisyphus/commit/ac9ad455c4dc9e144a9aaedab9ce93297d9ecd9b)] -- Add register service and generate description to file ([#28](https://github.com/ButterCam/sisyphus/issues/28)) [[cb9937b](https://github.com/ButterCam/sisyphus/commit/cb9937b357a14233d0d3eb8395de6626ad207cf2)] -- Simple quick start document ([#27](https://github.com/ButterCam/sisyphus/issues/27)) [[2a4b99e](https://github.com/ButterCam/sisyphus/commit/2a4b99eee076d9e4440654819d15eaddc1a79374)] -- Add dependencies bedge ([#26](https://github.com/ButterCam/sisyphus/issues/26)) [[f19897d](https://github.com/ButterCam/sisyphus/commit/f19897ddb81e2d967bfe08cc5f1c865365edb8ea)] -- Fix license github repo assembling ([#25](https://github.com/ButterCam/sisyphus/issues/25)) [[815092b](https://github.com/ButterCam/sisyphus/commit/815092b940b6bc98824bca761760d84e52bcf1ba)] +- Clear warning for read descriptor + file ([#31](https://github.com/ButterCam/sisyphus/issues/31)) [[8db2a71](https://github.com/ButterCam/sisyphus/commit/8db2a7131f40a5945eab08a55946806872aa8a12)] +- Refactor + metrics ([#30](https://github.com/ButterCam/sisyphus/issues/30)) [[223cc0c](https://github.com/ButterCam/sisyphus/commit/223cc0c3e5ac3c2c9f98a3204e2672263e4b8b07)] +- Add Micrometer Prometheus timer + interceptor ([#29](https://github.com/ButterCam/sisyphus/issues/29)) [[ac9ad45](https://github.com/ButterCam/sisyphus/commit/ac9ad455c4dc9e144a9aaedab9ce93297d9ecd9b)] +- Add register service and generate description to + file ([#28](https://github.com/ButterCam/sisyphus/issues/28)) [[cb9937b](https://github.com/ButterCam/sisyphus/commit/cb9937b357a14233d0d3eb8395de6626ad207cf2)] +- Simple quick start + document ([#27](https://github.com/ButterCam/sisyphus/issues/27)) [[2a4b99e](https://github.com/ButterCam/sisyphus/commit/2a4b99eee076d9e4440654819d15eaddc1a79374)] +- Add dependencies + bedge ([#26](https://github.com/ButterCam/sisyphus/issues/26)) [[f19897d](https://github.com/ButterCam/sisyphus/commit/f19897ddb81e2d967bfe08cc5f1c865365edb8ea)] +- Fix license github repo + assembling ([#25](https://github.com/ButterCam/sisyphus/issues/25)) [[815092b](https://github.com/ButterCam/sisyphus/commit/815092b940b6bc98824bca761760d84e52bcf1ba)] diff --git a/ReadMe.md b/ReadMe.md index 7d56c3fb..158b62f8 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,30 +1,38 @@ -# Sisyphus +# Sisyphus ![JDK version](https://img.shields.io/badge/jdk-11-green?logo=java) ![Gradle Version](https://img.shields.io/badge/gradle-%5E6.5-green?logo=gradle) [![Maven Central](https://img.shields.io/maven-central/v/com.bybutter.sisyphus/sisyphus-bom)](https://mvnrepository.com/artifact/com.bybutter.sisyphus/sisyphus-bom) [![Dependencies](https://img.shields.io/librariesio/release/maven/com.bybutter.sisyphus:sisyphus-dependencies)](https://libraries.io/maven/com.bybutter.sisyphus:sisyphus-dependencies) -Sisyphus is the way how we provide backend services. It integrates all tools and libraries needed for designing API which follows the [Google API Improvement Proposals](https://aip.bybutter.com). +Sisyphus is the way how we provide backend services. It integrates all tools and libraries needed for designing API +which follows the [Google API Improvement Proposals](https://aip.bybutter.com). ## We are rolling a huge boulder -Due to analyzing product documents completely, it is not particularly difficult to write an exquisite and easy-to-use API at the beginning for most APIs. +Due to analyzing product documents completely, it is not particularly difficult to write an exquisite and easy-to-use +API at the beginning for most APIs. However, many people will break the initial design of the API in the endless updates of products. -It's hard to create a strong and extensible API in the whole project lifetime, just like rolling a huge boulder endlessly up a steep hill. +It's hard to create a strong and extensible API in the whole project lifetime, just like rolling a huge boulder +endlessly up a steep hill. -So we need an all-encompassing guide book to guide us in creating, updating, and modifying APIs. +So we need an all-encompassing guide book to guide us in creating, updating, and modifying APIs. -The [Google API Improvement Proposals](https://aip.bybutter.com) is the all-encompassing guide book. Google created it in their rich and extensive API design experience. It laid the foundation for anyone to create an extensible API. +The [Google API Improvement Proposals](https://aip.bybutter.com) is the all-encompassing guide book. Google created it +in their rich and extensive API design experience. It laid the foundation for anyone to create an extensible API. ## Good tools can help you -Choosing good tools can help you 'rolling a huge boulder' faster and easier. Sisyphus provides and integrates many tools in your 'boulder rolling' route. +Choosing good tools can help you 'rolling a huge boulder' faster and easier. Sisyphus provides and integrates many tools +in your 'boulder rolling' route. -[**Kotlin**](https://kotlinlang.org/) is our target language. The mature JVM community and concise grammar are the reasons. +[**Kotlin**](https://kotlinlang.org/) is our target language. The mature JVM community and concise grammar are the +reasons. [**Spring boot**](https://spring.io/projects/spring-boot) is our old friend to manage and organize our components. -[**gRPC**](https://grpc.io/) is our target API framework. Sisyphus also provides the [HTTP and gRPC Transcoding](https://aip.bybutter.com/127) component for the environment which isn't compatible with gRPC. +[**gRPC**](https://grpc.io/) is our target API framework. Sisyphus also provides +the [HTTP and gRPC Transcoding](https://aip.bybutter.com/127) component for the environment which isn't compatible with +gRPC. [**Sisyphus Protobuf**](/lib/sisyphus-protobuf) is our customized protobuf runtime, which designed for Kotlin. @@ -34,17 +42,23 @@ Choosing good tools can help you 'rolling a huge boulder' faster and easier. Sis [**Sisyphus Middleware**](/middleware) is the way how we connect Sisyphus and other systems. -[**Sisyphus Configuration Artifact**](/middleware/sisyphus-configuration-artifact) is the way how we manage configurations and developing environment. +[**Sisyphus Configuration Artifact**](/middleware/sisyphus-configuration-artifact) is the way how we manage +configurations and developing environment. -[**Sisyphus Kubernetes gRPC client**](/middleware/sisyphus-grpc-client-kubernetes) is the way how we implement service discovery in Kubernetes. +[**Sisyphus Kubernetes gRPC client**](/middleware/sisyphus-grpc-client-kubernetes) is the way how we implement service +discovery in Kubernetes. [**Sisyphus Protobuf Compiler**](/tools/sisyphus-protoc) is the way how we generate Kotlin codes by `.proto` files. -[**Sisyphus Project Plugin**](/tools/sisyphus-project-gradle-plugin) is the way how we manage project and configuring Gradle. +[**Sisyphus Project Plugin**](/tools/sisyphus-project-gradle-plugin) is the way how we manage project and configuring +Gradle. -[**Sisyphus Protobuf Plugin**](/tools/sisyphus-protobuf-gradle-plugin) is the way how we generate code by `.proto` files in Gradle. +[**Sisyphus Protobuf Plugin**](/tools/sisyphus-protobuf-gradle-plugin) is the way how we generate code by `.proto` files +in Gradle. -**And More** tools like [CEL(Common Expression Language)](https://github.com/google/cel-spec), [Filtering](https://aip.bybutter.com/160) and [Ordering](https://aip.bybutter.com/132#ordering) scripts will help you to design APIs following Google AIP. +**And More** tools like [CEL(Common Expression Language)](https://github.com/google/cel-spec) +, [Filtering](https://aip.bybutter.com/160) and [Ordering](https://aip.bybutter.com/132#ordering) scripts will help you +to design APIs following Google AIP. ## Rolling with Sisyphus @@ -52,12 +66,14 @@ Ready to rolling boulder with Sisyphus already? Hold on! We need to plan our rou 1. **System requirement** - - Gradle 6.7+ - - JDK 11+ + - Gradle 6.7+ + - JDK 11+ 2. **Configure Sisyphus with gradle.properties** - We use [gradle.properties](https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties) to configure global settings of Sisyphus and all Sisyphus projects. + We + use [gradle.properties](https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties) + to configure global settings of Sisyphus and all Sisyphus projects. ```properties # [DEV,RT] Set developer name for developing environment. @@ -93,7 +109,8 @@ Ready to rolling boulder with Sisyphus already? Hold on! We need to plan our rou > > **[RT]** for runtime environment properties. - `gradle.properties` are shared between Gradle and Spring. Sisyphus Project Plugin will load them and configure Gradle automatically. Sisyphus Configuration Artifact will load them for Spring Framework. + `gradle.properties` are shared between Gradle and Spring. Sisyphus Project Plugin will load them and configure Gradle + automatically. Sisyphus Configuration Artifact will load them for Spring Framework. 3. **Write Protobuf schemas** @@ -157,7 +174,8 @@ Ready to rolling boulder with Sisyphus already? Hold on! We need to plan our rou 4. **Implement API** - API schema is ready now. The next step is to implement this API schema. Create a service project and refer to the schema project. + API schema is ready now. The next step is to implement this API schema. Create a service project and refer to the + schema project. This is a sample service project `build.gradle.kts` config. @@ -203,7 +221,8 @@ Ready to rolling boulder with Sisyphus already? Hold on! We need to plan our rou 5. **Run the Application** - The service project is just a non-runnable library. We need to create an application project to run our service projects. + The service project is just a non-runnable library. We need to create an application project to run our service + projects. This is a sample application project `build.gradle.kts` config. diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 3f82060a..57e902c6 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } dependencies { - implementation(platform("com.bybutter.sisyphus:sisyphus-dependencies:protoc-SNAPSHOT")) + implementation(platform("com.bybutter.sisyphus:sisyphus-dependencies:higan-SNAPSHOT")) implementation("com.bybutter.sisyphus.tools:sisyphus-protobuf-gradle-plugin") implementation("com.bybutter.sisyphus.tools:sisyphus-project-gradle-plugin") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin") diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BaseEncoding.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BaseEncoding.kt index bdaf6b25..c7206436 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BaseEncoding.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BaseEncoding.kt @@ -40,8 +40,10 @@ open class BaseEncoding(val table: CharArray) { val stream = BitOutputStream(output) for (char in input) { - stream.writeInt(reverseMap[char] - ?: throw IllegalArgumentException("Wrong base$bits input '$char'."), bits) + stream.writeInt( + reverseMap[char] + ?: throw IllegalArgumentException("Wrong base$bits input '$char'."), bits + ) } return output.toByteArray() } diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BitStream.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BitStream.kt index 0edcacf8..ba390c12 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BitStream.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/data/BitStream.kt @@ -30,7 +30,7 @@ class BitInputStream(private val source: InputStream) : InputStream() { } var read = 0 - loop@for (i in 0 until bits) { + loop@ for (i in 0 until bits) { when (read()) { 0 -> data.set(i, false) 1 -> data.set(i, true) @@ -47,7 +47,7 @@ class BitInputStream(private val source: InputStream) : InputStream() { var int = 0 var read = 0 - loop@for (i in 0 until bits) { + loop@ for (i in 0 until bits) { when (read()) { 1 -> int = int or (1 shl (bits - i - 1)) 0 -> int diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/io/Path.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/io/Path.kt index a5fb7e67..f137ee79 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/io/Path.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/io/Path.kt @@ -22,10 +22,12 @@ fun String.toWindowsPath(): String { fun String.toPlatformPath(): String { return buildString { for (ch in this@toPlatformPath) { - append(when (ch) { - '\\', '/' -> File.separatorChar - else -> ch - }) + append( + when (ch) { + '\\', '/' -> File.separatorChar + else -> ch + } + ) } } } diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/math/Vector.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/math/Vector.kt index d2213cff..a6cb5654 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/math/Vector.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/math/Vector.kt @@ -7,6 +7,7 @@ import kotlin.math.sin import kotlin.math.sqrt typealias Vec2 = Pair + val Vec2.x get() = first val Vec2.y get() = second @@ -63,6 +64,7 @@ fun Vec2.toCartesian(): Vec2 { } typealias Vec3 = Triple + val Vec3.x get() = first val Vec3.y get() = second val Vec3.z get() = third @@ -110,6 +112,7 @@ fun Vec3.dot(other: Vec3): Double { } typealias Vec4 = Quat + val Vec4.x get() = first val Vec4.y get() = second val Vec4.z get() = third diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/GenericType.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/GenericType.kt index ffca39e9..fd39d69b 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/GenericType.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/GenericType.kt @@ -6,7 +6,7 @@ import java.lang.reflect.Type import java.util.concurrent.ConcurrentHashMap class GenericType private constructor(raw: Class<*>, private val parameters: List) : SimpleType(raw), - ParameterizedType { + ParameterizedType { companion object { private val cache = ConcurrentHashMap() diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/JvmType.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/JvmType.kt index 42e10011..78d2baba 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/JvmType.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/reflect/JvmType.kt @@ -41,8 +41,10 @@ abstract class JvmType protected constructor() : Type { fun fromName(name: String): JvmType { return when { name == "?" -> OutWildcardType.STAR - name.startsWith("? extends ") -> OutWildcardType(name.substringAfter("? extends ").split(" & ").map { it.toType() as SimpleType }) - name.startsWith("? super ") -> InWildcardType(name.substringAfter("? extends ").split(" & ").map { it.toType() as SimpleType }) + name.startsWith("? extends ") -> OutWildcardType( + name.substringAfter("? extends ").split(" & ").map { it.toType() as SimpleType }) + name.startsWith("? super ") -> InWildcardType( + name.substringAfter("? extends ").split(" & ").map { it.toType() as SimpleType }) name.indexOf('<') > 0 -> { val raw = Class.forName(name.substringBefore('<')) val parameters = name.substring(name.indexOf('<') + 1, name.lastIndexOf('>')) diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/spring/BeanUtils.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/spring/BeanUtils.kt index 9a2ae884..c5394695 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/spring/BeanUtils.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/spring/BeanUtils.kt @@ -43,14 +43,21 @@ object BeanUtils { } } - inline fun getBeansWithAnnotation(beanFactory: ListableBeanFactory, annotation: Class): Map { + inline fun getBeansWithAnnotation( + beanFactory: ListableBeanFactory, + annotation: Class + ): Map { return getBeansWithAnnotation(beanFactory, T::class.java, annotation) } /** * Get beans of specified type and annotation, if [beanFactory] is [ConfigurableBeanFactory] or [ApplicationContext] this function will return sorted beans. */ - fun getBeansWithAnnotation(beanFactory: ListableBeanFactory, type: Class, annotation: Class): Map { + fun getBeansWithAnnotation( + beanFactory: ListableBeanFactory, + type: Class, + annotation: Class + ): Map { val factory = when (beanFactory) { is ApplicationContext -> beanFactory.autowireCapableBeanFactory else -> beanFactory @@ -66,7 +73,11 @@ object BeanUtils { } } - fun getSortedBeansWithAnnotation(beanFactory: ConfigurableListableBeanFactory, type: Class, annotation: Class): Map { + fun getSortedBeansWithAnnotation( + beanFactory: ConfigurableListableBeanFactory, + type: Class, + annotation: Class + ): Map { return getSortedBeansWithCondition(beanFactory, type) { _, _, definition -> val beanType = Class.forName(definition.beanClassName) AnnotationUtils.getAnnotation(beanType, annotation) != null @@ -76,7 +87,11 @@ object BeanUtils { /** * Get beans of specified type and annotation, if [beanFactory] is [ConfigurableBeanFactory] or [ApplicationContext] this function will return sorted beans. */ - fun getBeansWithCondition(beanFactory: ListableBeanFactory, type: Class, condition: (String, ListableBeanFactory) -> Boolean): Map { + fun getBeansWithCondition( + beanFactory: ListableBeanFactory, + type: Class, + condition: (String, ListableBeanFactory) -> Boolean + ): Map { val factory = when (beanFactory) { is ApplicationContext -> beanFactory.autowireCapableBeanFactory else -> beanFactory @@ -100,7 +115,11 @@ object BeanUtils { return result } - fun getSortedBeansWithCondition(beanFactory: ConfigurableListableBeanFactory, type: Class, condition: (String, ConfigurableBeanFactory, BeanDefinition) -> Boolean): Map { + fun getSortedBeansWithCondition( + beanFactory: ConfigurableListableBeanFactory, + type: Class, + condition: (String, ConfigurableBeanFactory, BeanDefinition) -> Boolean + ): Map { val names = beanFactory.getBeanNamesForType(type) val beans = mutableMapOf() @@ -120,7 +139,8 @@ object BeanUtils { private class BeanDefinitionOrderComparer(private val map: Map) : Comparator { companion object { - private val ORDER_ATTRIBUTE = Conventions.getQualifiedAttributeName(ConfigurationClassPostProcessor::class.java, "order") + private val ORDER_ATTRIBUTE = + Conventions.getQualifiedAttributeName(ConfigurationClassPostProcessor::class.java, "order") } override fun compare(o1: String, o2: String): Int { diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Case.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Case.kt index 417eefb8..4676302d 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Case.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Case.kt @@ -18,7 +18,8 @@ import com.bybutter.sisyphus.string.case.WordSplitter fun String.toCase(format: CaseFormat) = format.format(this) -fun String.toCase(formatter: CaseFormatter, splitter: WordSplitter = CommonWordSplitter) = formatter.format(splitter.split(this)) +fun String.toCase(formatter: CaseFormatter, splitter: WordSplitter = CommonWordSplitter) = + formatter.format(splitter.split(this)) /** Converts a string to 'SCREAMING_SNAKE_CASE'. */ fun String.toScreamingSnakeCase() = toCase(ScreamingSnakeCaseFormatter) diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/PathMatcher.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/PathMatcher.kt index 9c9904ba..7f7215ab 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/PathMatcher.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/PathMatcher.kt @@ -63,7 +63,13 @@ object PathMatcher { return si == str.length } - private fun wildcardMatch(pat: CharSequence, p: Int, str: CharSequence, s: Int, pathDelimiters: Set): Boolean { + private fun wildcardMatch( + pat: CharSequence, + p: Int, + str: CharSequence, + s: Int, + pathDelimiters: Set + ): Boolean { var si = s val pc = pat.getOrZero(p) while (true) { @@ -96,7 +102,13 @@ object PathMatcher { } } - private fun multiWildcardMatch(pat: CharSequence, p: Int, str: CharSequence, s: Int, pathDelimiters: Set): Boolean { + private fun multiWildcardMatch( + pat: CharSequence, + p: Int, + str: CharSequence, + s: Int, + pathDelimiters: Set + ): Boolean { // End of pattern, just check the end of string is '/' quickly. var si = s if (p >= pat.length && si < str.length) { diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Version.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Version.kt index 0f5504f0..58f37a7d 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Version.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/Version.kt @@ -30,7 +30,7 @@ data class Version(val major: Int, val minor: Int, val patch: Int) : Comparable< */ fun isAtLeast(major: Int, minor: Int): Boolean = this.major > major || (this.major == major && - this.minor >= minor) + this.minor >= minor) /** * Returns `true` if this version is not less than the version specified @@ -38,8 +38,8 @@ data class Version(val major: Int, val minor: Int, val patch: Int) : Comparable< */ fun isAtLeast(major: Int, minor: Int, patch: Int): Boolean = this.major > major || (this.major == major && - (this.minor > minor || this.minor == minor && - this.patch >= patch)) + (this.minor > minor || this.minor == minor && + this.patch >= patch)) companion object { fun parse(version: String): Version { diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/case/CommonWordSplitter.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/case/CommonWordSplitter.kt index 8fa38ae0..7b9cc8f1 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/case/CommonWordSplitter.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/case/CommonWordSplitter.kt @@ -7,7 +7,12 @@ object CommonWordSplitter : WordSplitter { return entryPoint(string) } - private fun entryPoint(string: CharSequence, pos: Int = 0, stack: StringBuilder = StringBuilder(), result: MutableList = mutableListOf()): List { + private fun entryPoint( + string: CharSequence, + pos: Int = 0, + stack: StringBuilder = StringBuilder(), + result: MutableList = mutableListOf() + ): List { result.append(stack) if (pos >= string.length) { @@ -33,7 +38,12 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleDigital(string: CharSequence, pos: Int, stack: StringBuilder, result: MutableList): List { + private fun handleDigital( + string: CharSequence, + pos: Int, + stack: StringBuilder, + result: MutableList + ): List { var index = pos val digital = StringBuilder() digital.append(string[index++]) @@ -71,7 +81,12 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleLowerCase(string: CharSequence, pos: Int, stack: StringBuilder, result: MutableList): List { + private fun handleLowerCase( + string: CharSequence, + pos: Int, + stack: StringBuilder, + result: MutableList + ): List { var index = pos while (true) { @@ -91,7 +106,12 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleUpperCase(string: CharSequence, pos: Int, stack: StringBuilder, result: MutableList): List { + private fun handleUpperCase( + string: CharSequence, + pos: Int, + stack: StringBuilder, + result: MutableList + ): List { var index = pos while (true) { @@ -118,7 +138,13 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleUpperCaseAfterDigital(string: CharSequence, pos: Int, stack: StringBuilder, digital: StringBuilder, result: MutableList): List { + private fun handleUpperCaseAfterDigital( + string: CharSequence, + pos: Int, + stack: StringBuilder, + digital: StringBuilder, + result: MutableList + ): List { var index = pos while (true) { @@ -154,7 +180,12 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleUnknown(string: CharSequence, pos: Int, stack: StringBuilder, result: MutableList): List { + private fun handleUnknown( + string: CharSequence, + pos: Int, + stack: StringBuilder, + result: MutableList + ): List { var index = pos while (true) { @@ -171,7 +202,12 @@ object CommonWordSplitter : WordSplitter { } } - private fun handleDelimiter(string: CharSequence, pos: Int, stack: StringBuilder, result: MutableList): List { + private fun handleDelimiter( + string: CharSequence, + pos: Int, + stack: StringBuilder, + result: MutableList + ): List { var index = pos + 1 while (true) { diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/pluralize/PluralizeUtil.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/pluralize/PluralizeUtil.kt index 1eed4e51..e57a6b5e 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/pluralize/PluralizeUtil.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/string/pluralize/PluralizeUtil.kt @@ -58,7 +58,12 @@ object PluralizeUtil { return token } - private fun replaceWord(word: String, replaceMap: Map, keepMap: Map, rules: List): String { + private fun replaceWord( + word: String, + replaceMap: Map, + keepMap: Map, + rules: List + ): String { if (word.isBlank()) return word val token = word.toLowerCase() @@ -94,7 +99,12 @@ object PluralizeUtil { return token } - private fun checkWord(word: String, replaceMap: Map, keepMap: Map, rules: List): Boolean { + private fun checkWord( + word: String, + replaceMap: Map, + keepMap: Map, + rules: List + ): Boolean { if (word.isBlank()) return false val token = word.toLowerCase() @@ -179,12 +189,21 @@ object PluralizeUtil { addPluralRule("""(alias|[^aou]us|t[lm]as|gas|ris)$""".toRegex(), "$1es") addPluralRule("""(e[mn]u)s?$""".toRegex(), "$1s") addPluralRule("""([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$""".toRegex(), "$1") - addPluralRule("""(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$""".toRegex(), "$1i") + addPluralRule( + """(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$""".toRegex(), + "$1i" + ) addPluralRule("""(alumn|alg|vertebr)(?:a|ae)$""".toRegex(), "$1ae") addPluralRule("""(seraph|cherub)(?:im)?$""".toRegex(), "$1im") addPluralRule("""(her|at|gr)o$""".toRegex(), "$1oes") - addPluralRule("""(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$""".toRegex(), "$1a") - addPluralRule("""(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$""".toRegex(), "$1a") + addPluralRule( + """(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$""".toRegex(), + "$1a" + ) + addPluralRule( + """(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$""".toRegex(), + "$1a" + ) addPluralRule("""sis$""".toRegex(), "ses") addPluralRule("""(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$""".toRegex(), "$1$2ves") addPluralRule("""([^aeiouy]|qu)y$""".toRegex(), "$1ies") @@ -207,17 +226,32 @@ object PluralizeUtil { addSingularRule("""(ar|(?:wo|[ae])l|[eo][ao])ves$""".toRegex(), "$1f") addSingularRule("""ies$""".toRegex(), "y") addSingularRule("""(dg|ss|ois|lk|ok|wn|mb|th|ch|ec|oal|is|ec|ck|ix|sser|ts|wb)ies$""".toRegex(), "$1ie") - addSingularRule("""\b(l|(?:neck|cross|hog|aun)?t|coll|faer|food|gen|goon|group|hipp|junk|vegg|(?:pork)?p|charl|calor|cut)ies$""".toRegex(), "$1ie") + addSingularRule( + """\b(l|(?:neck|cross|hog|aun)?t|coll|faer|food|gen|goon|group|hipp|junk|vegg|(?:pork)?p|charl|calor|cut)ies$""".toRegex(), + "$1ie" + ) addSingularRule("""\b(mon|smil)ies$""".toRegex(), "$1ey") addSingularRule("""\b((?:tit)?m|l)ice$""".toRegex(), "$1ouse") addSingularRule("""(seraph|cherub)im$""".toRegex(), "$1") - addSingularRule("""(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$""".toRegex(), "$1") + addSingularRule( + """(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$""".toRegex(), + "$1" + ) addSingularRule("""(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$""".toRegex(), "$1sis") addSingularRule("""(movie|twelve|abuse|e[mn]u)s$""".toRegex(), "$1") addSingularRule("""(test)(?:is|es)$""".toRegex(), "$1is") - addSingularRule("""(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$""".toRegex(), "$1us") - addSingularRule("""(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$""".toRegex(), "$1um") - addSingularRule("""(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$""".toRegex(), "$1on") + addSingularRule( + """(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$""".toRegex(), + "$1us" + ) + addSingularRule( + """(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$""".toRegex(), + "$1um" + ) + addSingularRule( + """(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$""".toRegex(), + "$1on" + ) addSingularRule("""(alumn|alg|vertebr)ae$""".toRegex(), "$1a") addSingularRule("""(cod|mur|sil|vert|ind)ices$""".toRegex(), "$1ex") addSingularRule("""(matr|append)ices$""".toRegex(), "$1ix") diff --git a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/uri/JdbcURIBuilder.kt b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/uri/JdbcURIBuilder.kt index a714a1f9..2f37f650 100644 --- a/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/uri/JdbcURIBuilder.kt +++ b/lib/sisyphus-common/src/main/kotlin/com/bybutter/sisyphus/uri/JdbcURIBuilder.kt @@ -18,6 +18,7 @@ class JdbcURIBuilder internal constructor(uri: URI) { } builder = resolvedUri.toBuilder() } + var userInfo: String? get() = builder.userInfo set(value) { diff --git a/lib/sisyphus-dsl/src/main/kotlin/com/bybutter/sisyphus/dsl/cel/CelRuntime.kt b/lib/sisyphus-dsl/src/main/kotlin/com/bybutter/sisyphus/dsl/cel/CelRuntime.kt index 20f1b3f0..17f9e2bb 100644 --- a/lib/sisyphus-dsl/src/main/kotlin/com/bybutter/sisyphus/dsl/cel/CelRuntime.kt +++ b/lib/sisyphus-dsl/src/main/kotlin/com/bybutter/sisyphus/dsl/cel/CelRuntime.kt @@ -4,7 +4,6 @@ import com.bybutter.sisyphus.dsl.cel.grammar.CelParser import com.bybutter.sisyphus.protobuf.CustomProtoType import com.bybutter.sisyphus.protobuf.CustomProtoTypeSupport import com.bybutter.sisyphus.protobuf.InternalProtoApi -import com.bybutter.sisyphus.protobuf.MessageSupport import com.bybutter.sisyphus.protobuf.ProtoTypes import kotlin.reflect.KClass import kotlin.reflect.KFunction @@ -156,8 +155,7 @@ open class CelRuntime(val macro: CelMacro = CelMacro(), val std: CelStandardLibr @OptIn(InternalProtoApi::class) fun createMessage(type: String, initializer: Map): Any { - val messageSupport = ProtoTypes.findSupport(type) as? MessageSupport<*, *> - ?: throw IllegalStateException("Message '$type' not defined.") + val messageSupport = ProtoTypes.findMessageSupport(type) return messageSupport.newMutable().apply { for ((key, value) in initializer) { value ?: continue diff --git a/lib/sisyphus-grpc-coroutine/src/main/kotlin/com/bybutter/sisyphus/rpc/AbstractCoroutineStub.kt b/lib/sisyphus-grpc-coroutine/src/main/kotlin/com/bybutter/sisyphus/rpc/AbstractCoroutineStub.kt index 7f744c8d..3eaa690f 100644 --- a/lib/sisyphus-grpc-coroutine/src/main/kotlin/com/bybutter/sisyphus/rpc/AbstractCoroutineStub.kt +++ b/lib/sisyphus-grpc-coroutine/src/main/kotlin/com/bybutter/sisyphus/rpc/AbstractCoroutineStub.kt @@ -33,7 +33,11 @@ abstract class AbstractCoroutineStub>( return build(channel, optionsInterceptors, callOptions) } - abstract fun build(channel: Channel, optionsInterceptors: Iterable, callOptions: CallOptions): T + abstract fun build( + channel: Channel, + optionsInterceptors: Iterable, + callOptions: CallOptions + ): T protected fun buildOption(method: MethodDescriptor<*, *>): CallOptions { return optionsInterceptors.fold(callOptions) { options, interceptor -> @@ -41,19 +45,35 @@ abstract class AbstractCoroutineStub>( } } - protected suspend fun unaryCall(method: MethodDescriptor, input: TReq, metadata: Metadata): TRes { + protected suspend fun unaryCall( + method: MethodDescriptor, + input: TReq, + metadata: Metadata + ): TRes { return ClientCalls.unaryRpc(channel, method, input, buildOption(method), metadata) } - protected fun serverStreaming(method: MethodDescriptor, input: TReq, metadata: Metadata): Flow { + protected fun serverStreaming( + method: MethodDescriptor, + input: TReq, + metadata: Metadata + ): Flow { return ClientCalls.serverStreamingRpc(channel, method, input, buildOption(method), metadata) } - protected suspend fun clientStreaming(method: MethodDescriptor, input: Flow, metadata: Metadata): TRes { + protected suspend fun clientStreaming( + method: MethodDescriptor, + input: Flow, + metadata: Metadata + ): TRes { return ClientCalls.clientStreamingRpc(channel, method, input, buildOption(method), metadata) } - protected fun bidiStreaming(method: MethodDescriptor, input: Flow, metadata: Metadata): Flow { + protected fun bidiStreaming( + method: MethodDescriptor, + input: Flow, + metadata: Metadata + ): Flow { return ClientCalls.bidiStreamingRpc(channel, method, input, buildOption(method), metadata) } } diff --git a/lib/sisyphus-grpc/src/main/kotlin/com/bybutter/sisyphus/rpc/ClientExceptionResolver.kt b/lib/sisyphus-grpc/src/main/kotlin/com/bybutter/sisyphus/rpc/ClientExceptionResolver.kt index c42573eb..4fb2d7ac 100644 --- a/lib/sisyphus-grpc/src/main/kotlin/com/bybutter/sisyphus/rpc/ClientExceptionResolver.kt +++ b/lib/sisyphus-grpc/src/main/kotlin/com/bybutter/sisyphus/rpc/ClientExceptionResolver.kt @@ -16,7 +16,8 @@ object ClientExceptionResolver : ClientInterceptor { callOptions: CallOptions, next: Channel ): ClientCall { - return object : ForwardingClientCall.SimpleForwardingClientCall(next.newCall(method, callOptions)) { + return object : + ForwardingClientCall.SimpleForwardingClientCall(next.newCall(method, callOptions)) { override fun start(responseListener: Listener, headers: Metadata) { super.start(object : ForwardingClientCallListener.SimpleForwardingClientCallListener(responseListener) { diff --git a/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoDeserializer.kt b/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoDeserializer.kt index f0b67eb0..ac2e4ed3 100644 --- a/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoDeserializer.kt +++ b/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoDeserializer.kt @@ -170,7 +170,8 @@ open class ProtoDeserializer> : StdDeserializer { } private fun readCustom(type: JavaType, p: JsonParser, ctxt: DeserializationContext): CustomProtoType<*> { - val support = type.rawClass.kotlin.companionObjectInstance as CustomProtoTypeSupport, Any?> + val support = + type.rawClass.kotlin.companionObjectInstance as CustomProtoTypeSupport, Any?> val raw = readAny(support.rawType.javaType, p, ctxt) return support(raw) } diff --git a/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoSerializer.kt b/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoSerializer.kt index 093bc7a8..11190f76 100644 --- a/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoSerializer.kt +++ b/lib/sisyphus-jackson-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/jackson/ProtoSerializer.kt @@ -47,7 +47,11 @@ open class ProtoSerializer> : StdSerializer { writeAny(value as Any, value.javaType, gen, provider) } - private fun getSerializedPropertyName(field: FieldDescriptorProto, gen: JsonGenerator, provider: SerializerProvider): String { + private fun getSerializedPropertyName( + field: FieldDescriptorProto, + gen: JsonGenerator, + provider: SerializerProvider + ): String { return when (gen) { is YAMLGenerator -> field.name else -> field.jsonName @@ -61,7 +65,12 @@ open class ProtoSerializer> : StdSerializer { } gen.writeFieldName(getSerializedPropertyName(field, gen, provider)) - writeAny(fieldValue!!, TypeFactory.defaultInstance().constructType(value.getProperty(field.number)?.returnType?.javaType), gen, provider) + writeAny( + fieldValue!!, + TypeFactory.defaultInstance().constructType(value.getProperty(field.number)?.returnType?.javaType), + gen, + provider + ) } } @@ -201,7 +210,8 @@ open class ProtoSerializer> : StdSerializer { if ((value as? Float)?.isInfinite() == true || (value as? Float)?.isNaN() == true || (value as? Double)?.isInfinite() == true || - (value as? Double)?.isNaN() == true) { + (value as? Double)?.isNaN() == true + ) { gen.writeString(value.toString()) } diff --git a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Cbor.kt b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Cbor.kt index 2b47c32e..e32b9ba7 100644 --- a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Cbor.kt +++ b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Cbor.kt @@ -10,9 +10,9 @@ import com.fasterxml.jackson.dataformat.cbor.CBORFactory object Cbor : JacksonFormatSupport() { override val mapper: ObjectMapper by lazy { ObjectMapper(CBORFactory()).findAndRegisterModules() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) - .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) + .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) } } diff --git a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Json.kt b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Json.kt index 3d5fd90b..82e1a982 100644 --- a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Json.kt +++ b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Json.kt @@ -10,10 +10,10 @@ import com.fasterxml.jackson.databind.ObjectMapper object Json : JacksonFormatSupport() { override val mapper: ObjectMapper by lazy { ObjectMapper().findAndRegisterModules() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) - .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) + .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) } } @@ -32,6 +32,6 @@ inline fun String?.parseJsonOrDefault(value: T): T { } inline fun String.parseJson(): T = - Json.deserialize(this, object : TypeReference() {}) + Json.deserialize(this, object : TypeReference() {}) fun Any.toJson(): String = Json.serialize(this) diff --git a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Properties.kt b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Properties.kt index 38957bcf..fa980fc7 100644 --- a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Properties.kt +++ b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Properties.kt @@ -10,9 +10,9 @@ import com.fasterxml.jackson.dataformat.javaprop.JavaPropsFactory object Properties : JacksonFormatSupport() { override val mapper: ObjectMapper by lazy { ObjectMapper(JavaPropsFactory()).findAndRegisterModules() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) - .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) + .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) } } diff --git a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Smile.kt b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Smile.kt index 6bdf6413..db364dc1 100644 --- a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Smile.kt +++ b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Smile.kt @@ -10,9 +10,9 @@ import com.fasterxml.jackson.dataformat.smile.SmileFactory object Smile : JacksonFormatSupport() { override val mapper: ObjectMapper by lazy { ObjectMapper(SmileFactory()).findAndRegisterModules() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) - .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) + .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) } } diff --git a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Yaml.kt b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Yaml.kt index bb72fb00..4edee721 100644 --- a/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Yaml.kt +++ b/lib/sisyphus-jackson/src/main/kotlin/com/bybutter/sisyphus/jackson/Yaml.kt @@ -11,10 +11,10 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory object Yaml : JacksonFormatSupport() { override val mapper: ObjectMapper by lazy { ObjectMapper(YAMLFactory()).findAndRegisterModules() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) - .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(JsonParser.Feature.IGNORE_UNDEFINED, true) + .configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true) } } @@ -33,6 +33,6 @@ inline fun String?.parseYamlOrDefault(value: T): T { } inline fun String.parseYaml(): T = - Yaml.deserialize(this, object : TypeReference() {}) + Yaml.deserialize(this, object : TypeReference() {}) fun Any.toYaml(): String = Yaml.serialize(this) diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMessage.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMessage.kt index 2e968bcd..7237b760 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMessage.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMessage.kt @@ -184,18 +184,21 @@ abstract class AbstractMessage, TM : MutableMessage> : } protected fun getFieldInExtensions(name: String): T { - val number = support().fieldInfo(name)?.number ?: throw IllegalArgumentException("Message not contains field definition of '$name'.") + val number = support().fieldInfo(name)?.number + ?: throw IllegalArgumentException("Message not contains field definition of '$name'.") return getFieldInExtensions(number) } protected fun getFieldInExtensions(number: Int): T { - val extensions = support().extensions.firstOrNull { it.descriptor.number == number } ?: throw IllegalArgumentException("Message not contains field definition of '$number'.") + val extensions = support().extensions.firstOrNull { it.descriptor.number == number } + ?: throw IllegalArgumentException("Message not contains field definition of '$number'.") return (_extensions[number]?.value ?: extensions.default()).uncheckedCast() } protected fun getPropertyInExtensions(name: String): KProperty<*>? { - val extension = support().extensions.firstOrNull { it.descriptor.name == name || it.descriptor.jsonName == name } - ?: return null + val extension = + support().extensions.firstOrNull { it.descriptor.name == name || it.descriptor.jsonName == name } + ?: return null return extension.getProperty() } diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMutableMessage.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMutableMessage.kt index 13b6c6c3..ec94c16c 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMutableMessage.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/AbstractMutableMessage.kt @@ -31,7 +31,8 @@ abstract class AbstractMutableMessage, TM : MutableMessage) + _extensions[number] = + extension.read(reader, number, wireType, _extensions[number] as? MessageExtension) } } } @@ -111,7 +112,7 @@ abstract class AbstractMutableMessage, TM : MutableMessage - ?: throw IllegalArgumentException("Message not contains field definition of '$number'.") + ?: throw IllegalArgumentException("Message not contains field definition of '$number'.") _extensions[number] = extension.wrap(value) } diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/EnumSupport.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/EnumSupport.kt index 46fdb68d..a38f9fcc 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/EnumSupport.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/EnumSupport.kt @@ -3,7 +3,8 @@ package com.bybutter.sisyphus.protobuf import com.bybutter.sisyphus.protobuf.primitives.EnumDescriptorProto import kotlin.reflect.KClass -abstract class EnumSupport(private val enumClass: KClass) : ProtoEnumDsl, ProtoSupport { +abstract class EnumSupport(private val enumClass: KClass) : ProtoEnumDsl, + ProtoSupport { private val numberMap = enumClass.java.enumConstants.associate { (it as ProtoEnum).number to (it as T) } diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/MessagePatcher.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/MessagePatcher.kt index a9288a59..b043a757 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/MessagePatcher.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/MessagePatcher.kt @@ -192,7 +192,7 @@ class MessagePatcher : PatcherNode { @OptIn(InternalProtoApi::class) fun asMessage(type: String): Message<*, *> { - return (ProtoTypes.findSupport(type) as MessageSupport<*, *>).newMutable().apply { + return ProtoTypes.findMessageSupport(type).newMutable().apply { applyTo(this) } } diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/ProtoTypes.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/ProtoTypes.kt index e8049756..641e54c2 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/ProtoTypes.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/ProtoTypes.kt @@ -49,13 +49,24 @@ object ProtoTypes { return "$host/$name" } + /** + * Find protobuf support for file, enum, message and service. + * 'name' must be full proto name begin with dot like + * '.google.protobuf.Any' or type url like + * 'types.googleapis.com/google.protobuf.Any' or file name like + * 'google/api/annotation.proto'. + */ fun findSupport(name: String): ProtoSupport<*>? { if (name.contains('/')) { - return protoToSupportMap[getProtoNameByTypeUrl(name)] + return protoToSupportMap[getProtoNameByTypeUrl(name)] ?: protoToSupportMap[name] } return protoToSupportMap[name] } + fun findFileSupport(name: String): FileSupport { + return findSupport(name) as FileSupport + } + fun findMessageSupport(name: String): MessageSupport<*, *> { return findSupport(name) as MessageSupport<*, *> } diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/coded/Reader.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/coded/Reader.kt index f070381b..9288c71e 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/coded/Reader.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/coded/Reader.kt @@ -13,16 +13,17 @@ class Reader(private val inputStream: InputStream) { var readBytes = 0 private set - val isAtEnd: Boolean get() { - return when (currentByte) { - -1 -> true - -2 -> { - currentByte = inputStream.read() - currentByte == -1 + val isAtEnd: Boolean + get() { + return when (currentByte) { + -1 -> true + -2 -> { + currentByte = inputStream.read() + currentByte == -1 + } + else -> false } - else -> false } - } private var currentByte: Int = -2 diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TimestampExtension.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TimestampExtension.kt index e069993a..bf8972df 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TimestampExtension.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TimestampExtension.kt @@ -46,7 +46,16 @@ fun Timestamp.Companion.tryParse(value: String): Timestamp? { } } -operator fun Timestamp.Companion.invoke(year: Int, month: Month, day: Int, hour: Int = 0, minute: Int = 0, second: Int = 0, nano: Int = 0, zoneId: ZoneId = ZoneId.systemDefault()): Timestamp { +operator fun Timestamp.Companion.invoke( + year: Int, + month: Month, + day: Int, + hour: Int = 0, + minute: Int = 0, + second: Int = 0, + nano: Int = 0, + zoneId: ZoneId = ZoneId.systemDefault() +): Timestamp { val instant = ZonedDateTime.of(year, month.value, day, hour, minute, second, nano, zoneId).toInstant() return Timestamp { this.seconds = instant.epochSecond @@ -54,7 +63,16 @@ operator fun Timestamp.Companion.invoke(year: Int, month: Month, day: Int, hour: } } -operator fun Timestamp.Companion.invoke(year: Int, month: Int, day: Int, hour: Int = 0, minute: Int = 0, second: Int = 0, nano: Int = 0, zoneId: ZoneId = ZoneId.systemDefault()): Timestamp { +operator fun Timestamp.Companion.invoke( + year: Int, + month: Int, + day: Int, + hour: Int = 0, + minute: Int = 0, + second: Int = 0, + nano: Int = 0, + zoneId: ZoneId = ZoneId.systemDefault() +): Timestamp { val instant = ZonedDateTime.of(year, month, day, hour, minute, second, nano, zoneId).toInstant() return Timestamp { this.seconds = instant.epochSecond @@ -143,7 +161,11 @@ operator fun Duration.Companion.invoke(nanos: BigInteger): Duration { } operator fun Duration.Companion.invoke(hours: Long, minutes: Long, seconds: Long, nanos: Int = 0): Duration { - return Duration((TimeUnit.HOURS.toNanos(hours) + TimeUnit.MINUTES.toNanos(minutes) + TimeUnit.SECONDS.toNanos(seconds) + nanos).toBigInteger()) + return Duration( + (TimeUnit.HOURS.toNanos(hours) + TimeUnit.MINUTES.toNanos(minutes) + TimeUnit.SECONDS.toNanos( + seconds + ) + nanos).toBigInteger() + ) } fun Timestamp.toBigInteger(): BigInteger { diff --git a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TypeExtension.kt b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TypeExtension.kt index 8cecfeee..46252dfb 100644 --- a/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TypeExtension.kt +++ b/lib/sisyphus-protobuf/src/main/kotlin/com/bybutter/sisyphus/protobuf/primitives/TypeExtension.kt @@ -2,12 +2,11 @@ package com.bybutter.sisyphus.protobuf.primitives import com.bybutter.sisyphus.protobuf.EnumSupport import com.bybutter.sisyphus.protobuf.Message -import com.bybutter.sisyphus.protobuf.MessageSupport import com.bybutter.sisyphus.protobuf.ProtoTypes fun DescriptorProto.toType(typeName: String): Type { return Type { - val support = ProtoTypes.findSupport(typeName) as MessageSupport<*, *> + val support = ProtoTypes.findMessageSupport(typeName) this.name = this@toType.name for (fieldDescriptor in support.fieldDescriptors) { this.fields += fieldDescriptor.toField() @@ -87,7 +86,7 @@ fun EnumValueDescriptorProto.toEnumValue(): EnumValue { private fun Message<*, *>.toOptions(): List