Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -216,14 +216,14 @@ private MethodSpec getCacheMethodConfig(TypeElement cacheImpl, ParameterizedType
} else {
throw new IllegalArgumentException("Unknown cache type: " + cacheType.rawType());
}
var extractorType = ParameterizedTypeName.get(CommonClassNames.configValueExtractor, returnType);
var extractorType = ParameterizedTypeName.get(CommonClassNames.configValueMapper, returnType);

return MethodSpec.methodBuilder(methodName)
.addAnnotation(TagUtils.makeAnnotationSpec(cacheContractName))
.addModifiers(Modifier.DEFAULT, Modifier.PUBLIC)
.addParameter(CommonClassNames.config, "config")
.addParameter(extractorType, "extractor")
.addStatement("return extractor.extractOrThrow(config.get($S))", configPath)
.addParameter(extractorType, "mapper")
.addStatement("return mapper.mapOrThrow(config.get($S))", configPath)
.returns(returnType)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package io.koraframework.cache.annotation.processor;

import io.koraframework.cache.caffeine.$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor;
import io.koraframework.cache.caffeine.$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor;
import io.koraframework.cache.caffeine.$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper;
import io.koraframework.cache.caffeine.$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper;
import io.koraframework.cache.caffeine.CaffeineCacheConfig;
import io.koraframework.cache.redis.*;
import io.koraframework.cache.redis.RedisCacheClient;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_ConfigValueExtractor;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor;
import io.koraframework.cache.redis.telemetry.*;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper;
import io.koraframework.cache.redis.telemetry.$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper;
import org.jspecify.annotations.NullMarked;
import org.mockito.Mockito;

Expand All @@ -28,18 +27,18 @@ public static CaffeineCacheConfig getCaffeineConfig() {
when(config.maximumSize()).thenReturn(100_000L);
when(config.expireAfterAccess()).thenReturn(null);
when(config.expireAfterWrite()).thenReturn(null);
when(telemetry.metrics()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor.CaffeineMetricsConfig_Defaults());
when(telemetry.logging()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor.CaffeineLoggingConfig_Defaults());
when(telemetry.metrics()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper.CaffeineMetricsConfig_Defaults());
when(telemetry.logging()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper.CaffeineLoggingConfig_Defaults());
return config;
}

public static RedisCacheConfig getRedisConfig() {
var config = Mockito.mock(RedisCacheConfig.class);
when(config.keyPrefix()).thenReturn("pref");
when(config.telemetry()).thenReturn(new $RedisCacheTelemetryConfig_ConfigValueExtractor.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor.RedisCacheMetricsConfig_Defaults()
when(config.telemetry()).thenReturn(new $RedisCacheTelemetryConfig_ConfigValueMapper.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueMapper.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper.RedisCacheMetricsConfig_Defaults()
));
return config;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package io.koraframework.cache.caffeine;


import io.koraframework.config.common.annotation.ConfigValueExtractor;
import io.koraframework.config.common.annotation.ConfigMapper;
import io.koraframework.telemetry.common.TelemetryConfig;
import org.jspecify.annotations.Nullable;

import java.time.Duration;
import java.util.Map;

@ConfigValueExtractor
@ConfigMapper
public interface CaffeineCacheConfig {

@Nullable
Expand All @@ -26,17 +26,17 @@ default Long maximumSize() {

CaffeineTelemetryConfig telemetry();

@ConfigValueExtractor
@ConfigMapper
interface CaffeineTelemetryConfig {

CaffeineMetricsConfig metrics();

CaffeineLoggingConfig logging();

@ConfigValueExtractor
@ConfigMapper
interface CaffeineLoggingConfig extends TelemetryConfig.LoggingConfig {}

@ConfigValueExtractor
@ConfigMapper
interface CaffeineMetricsConfig {

default boolean enabled() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ public static CaffeineCacheConfig getConfig() {
when(config.maximumSize()).thenReturn(100_000L);
when(config.expireAfterAccess()).thenReturn(null);
when(config.expireAfterWrite()).thenReturn(null);
when(telemetry.metrics()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor.CaffeineMetricsConfig_Defaults());
when(telemetry.logging()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor.CaffeineLoggingConfig_Defaults());
when(telemetry.metrics()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper.CaffeineMetricsConfig_Defaults());
when(telemetry.logging()).thenReturn(new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper.CaffeineLoggingConfig_Defaults());
return config;
}
// public static CaffeineCacheConfig getConfig() {
Expand All @@ -40,9 +40,9 @@ public static CaffeineCacheConfig getConfig() {
//
// @Override
// public CaffeineTelemetryConfig telemetry() {
// return new $CaffeineCacheConfig_CaffeineTelemetryConfig_ConfigValueExtractor.CaffeineTelemetryConfig_Impl(
// new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor.CaffeineMetricsConfig_Defaults(),
// new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor.CaffeineLoggingConfig_Defaults()
// return new $CaffeineCacheConfig_CaffeineTelemetryConfig_ConfigValueMapper.CaffeineTelemetryConfig_Impl(
// new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper.CaffeineMetricsConfig_Defaults(),
// new $CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper.CaffeineLoggingConfig_Defaults()
// );
// }
// };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@


import io.koraframework.cache.redis.telemetry.RedisCacheTelemetryConfig;
import io.koraframework.config.common.annotation.ConfigValueExtractor;
import io.koraframework.config.common.annotation.ConfigMapper;
import org.jspecify.annotations.Nullable;

import java.time.Duration;

@ConfigValueExtractor
@ConfigMapper
public interface RedisCacheConfig {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.koraframework.cache.redis.telemetry;

import io.koraframework.config.common.annotation.ConfigValueExtractor;
import io.koraframework.config.common.annotation.ConfigMapper;
import io.koraframework.telemetry.common.TelemetryConfig;

@ConfigValueExtractor
@ConfigMapper
public interface RedisCacheTelemetryConfig extends TelemetryConfig {

@Override
Expand All @@ -15,12 +15,12 @@ public interface RedisCacheTelemetryConfig extends TelemetryConfig {
@Override
RedisCacheMetricsConfig metrics();

@ConfigValueExtractor
@ConfigMapper
interface RedisCacheTracingConfig extends TelemetryConfig.TracingConfig {}

@ConfigValueExtractor
@ConfigMapper
interface RedisCacheLoggingConfig extends TelemetryConfig.LoggingConfig {}

@ConfigValueExtractor
@ConfigMapper
interface RedisCacheMetricsConfig extends TelemetryConfig.MetricsConfig {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ public record TelemetryContext(RedisCacheTelemetryConfig config,
String cacheImplCanonicalName,
String cacheImplSimpleName) {

public static final TelemetryContext EMPTY = new TelemetryContext(new $RedisCacheTelemetryConfig_ConfigValueExtractor.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor.RedisCacheMetricsConfig_Defaults()
public static final TelemetryContext EMPTY = new TelemetryContext(new $RedisCacheTelemetryConfig_ConfigValueMapper.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueMapper.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper.RedisCacheMetricsConfig_Defaults()
), false, false, DefaultRedisCacheTelemetryFactory.NOOP_METER_REGISTRY, DefaultRedisCacheTelemetryFactory.NOOP_TRACER, "", "", "");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import io.koraframework.application.graph.Lifecycle;
import io.koraframework.cache.redis.telemetry.*;
import io.koraframework.cache.redis.testdata.DummyCache;
import io.koraframework.redis.lettuce.$LettuceConfig_SslConfig_ConfigValueExtractor;
import io.koraframework.redis.lettuce.$LettuceConfig_SslConfig_ConfigValueMapper;
import io.koraframework.redis.lettuce.LettuceConfig;
import io.koraframework.redis.lettuce.telemetry.$LettuceTelemetryConfig_ConfigValueExtractor;
import io.koraframework.redis.lettuce.telemetry.$LettuceTelemetryConfig_LettuceLoggingConfig_ConfigValueExtractor;
import io.koraframework.redis.lettuce.telemetry.$LettuceTelemetryConfig_LettuceMetricsConfig_ConfigValueExtractor;
import io.koraframework.redis.lettuce.telemetry.LettuceTelemetryConfig;
import io.koraframework.redis.lettuce.telemetry.*;
import io.koraframework.redis.lettuce.telemetry.$LettuceTelemetryConfig_ConfigValueMapper;
import io.koraframework.redis.lettuce.telemetry.$LettuceTelemetryConfig_LettuceMetricsConfig_ConfigValueMapper;
import io.koraframework.test.redis.RedisParams;
import org.jspecify.annotations.Nullable;
import org.junit.jupiter.api.Assertions;
Expand Down Expand Up @@ -42,10 +41,10 @@ public Duration expireAfterAccess() {

@Override
public RedisCacheTelemetryConfig telemetry() {
return new $RedisCacheTelemetryConfig_ConfigValueExtractor.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor.RedisCacheMetricsConfig_Defaults()
return new $RedisCacheTelemetryConfig_ConfigValueMapper.RedisCacheTelemetryConfig_Impl(
new $RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueMapper.RedisCacheLoggingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper.RedisCacheTracingConfig_Defaults(),
new $RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper.RedisCacheMetricsConfig_Defaults()
);
}
};
Expand Down Expand Up @@ -76,14 +75,14 @@ public String password() {

@Override
public LettuceConfig.SslConfig ssl() {
return new $LettuceConfig_SslConfig_ConfigValueExtractor.SslConfig_Defaults();
return new $LettuceConfig_SslConfig_ConfigValueMapper.SslConfig_Defaults();
}

@Override
public LettuceTelemetryConfig telemetry() {
return new $LettuceTelemetryConfig_ConfigValueExtractor.LettuceTelemetryConfig_Impl(
new $LettuceTelemetryConfig_LettuceLoggingConfig_ConfigValueExtractor.LettuceLoggingConfig_Defaults(),
new $LettuceTelemetryConfig_LettuceMetricsConfig_ConfigValueExtractor.LettuceMetricsConfig_Defaults()
return new $LettuceTelemetryConfig_ConfigValueMapper.LettuceTelemetryConfig_Impl(
new $LettuceTelemetryConfig_LettuceLoggingConfig_ConfigValueMapper.LettuceLoggingConfig_Defaults(),
new $LettuceTelemetryConfig_LettuceMetricsConfig_ConfigValueMapper.LettuceMetricsConfig_Defaults()
);
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import io.koraframework.ksp.common.AnnotationUtils.findValueNoDefault
import io.koraframework.ksp.common.BaseSymbolProcessor
import io.koraframework.ksp.common.CommonAopUtils.extendsKeepAop
import io.koraframework.ksp.common.CommonClassNames
import io.koraframework.ksp.common.CommonClassNames.configValueExtractor
import io.koraframework.ksp.common.CommonClassNames.configValueMapper
import io.koraframework.ksp.common.KspCommonUtils.addOriginatingKSFile
import io.koraframework.ksp.common.KspCommonUtils.generated
import io.koraframework.ksp.common.KspCommonUtils.toTypeName
Expand Down Expand Up @@ -216,14 +216,14 @@ class CacheSymbolProcessor(
REDIS_CACHE -> resolver.getClassDeclarationByName(REDIS_CACHE_CONFIG.canonicalName)!!
else -> throw IllegalArgumentException("Unknown cache type: ${cacheType.rawType}")
}
val extractorType = configValueExtractor.parameterizedBy(returnType.asType(listOf()).toTypeName())
val extractorType = configValueMapper.parameterizedBy(returnType.asType(listOf()).toTypeName())

return FunSpec.builder(methodName)
.addAnnotation(cacheImpl.toClassName().toTagAnnotation())
.addModifiers(KModifier.PUBLIC)
.addParameter("config", CommonClassNames.config)
.addParameter("extractor", extractorType)
.addStatement("return extractor.extractOrThrow(config.get(%S))!!", configPath)
.addParameter("mapper", extractorType)
.addStatement("return mapper.mapOrThrow(config.get(%S))!!", configPath)
.returns(returnType.asType(listOf()).toTypeName())
.build()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package io.koraframework.cache.symbol.processor

import io.koraframework.cache.caffeine.`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor`
import io.koraframework.cache.caffeine.`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor`
import io.koraframework.cache.caffeine.`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper`
import io.koraframework.cache.caffeine.`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper`
import io.koraframework.cache.caffeine.CaffeineCacheConfig
import io.koraframework.cache.caffeine.CaffeineCacheConfig.CaffeineTelemetryConfig
import io.koraframework.cache.redis.*
import io.koraframework.cache.redis.RedisCacheClient
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_ConfigValueExtractor`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_ConfigValueMapper`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueMapper`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper`
import io.koraframework.cache.redis.telemetry.`$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper`
import org.mockito.Mockito
import org.mockito.Mockito.`when`
import java.nio.ByteBuffer
Expand All @@ -30,8 +30,8 @@ class CacheRunner {
`when`(config.maximumSize()).thenReturn(100000L)
`when`(config.expireAfterAccess()).thenReturn(null)
`when`(config.expireAfterWrite()).thenReturn(null)
`when`(telemetry.metrics()).thenReturn(`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueExtractor`.CaffeineMetricsConfig_Defaults())
`when`(telemetry.logging()).thenReturn(`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueExtractor`.CaffeineLoggingConfig_Defaults())
`when`(telemetry.metrics()).thenReturn(`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineMetricsConfig_ConfigValueMapper`.CaffeineMetricsConfig_Defaults())
`when`(telemetry.logging()).thenReturn(`$CaffeineCacheConfig_CaffeineTelemetryConfig_CaffeineLoggingConfig_ConfigValueMapper`.CaffeineLoggingConfig_Defaults())
return config
}

Expand All @@ -43,10 +43,10 @@ class CacheRunner {
override fun expireAfterWrite(): Duration? = null

override fun expireAfterAccess(): Duration? = null
override fun telemetry() = `$RedisCacheTelemetryConfig_ConfigValueExtractor`.RedisCacheTelemetryConfig_Impl(
`$RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueExtractor`.RedisCacheLoggingConfig_Defaults(),
`$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueExtractor`.RedisCacheTracingConfig_Defaults(),
`$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueExtractor`.RedisCacheMetricsConfig_Defaults()
override fun telemetry() = `$RedisCacheTelemetryConfig_ConfigValueMapper`.RedisCacheTelemetryConfig_Impl(
`$RedisCacheTelemetryConfig_RedisCacheLoggingConfig_ConfigValueMapper`.RedisCacheLoggingConfig_Defaults(),
`$RedisCacheTelemetryConfig_RedisCacheTracingConfig_ConfigValueMapper`.RedisCacheTracingConfig_Defaults(),
`$RedisCacheTelemetryConfig_RedisCacheMetricsConfig_ConfigValueMapper`.RedisCacheMetricsConfig_Defaults()
)
}
}
Expand Down
Loading
Loading