Skip to content

Commit 269b30e

Browse files
authored
Lifecycle components are not longer graph root by default (#190)
1 parent a788a81 commit 269b30e

File tree

124 files changed

+632
-551
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+632
-551
lines changed

annotation-processor-common/src/testFixtures/java/ru/tinkoff/kora/annotation/processor/common/MockLifecycle.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

annotation-processor-common/src/testFixtures/java/ru/tinkoff/kora/annotation/processor/common/TestUtils.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,9 @@ public static ClassLoader testKoraExtension(TypeRef<?>[] targetClasses, TypeRef<
6464
6565
@ru.tinkoff.kora.common.KoraApp
6666
public interface TestApp {
67-
default ru.tinkoff.kora.application.graph.Lifecycle someLifecycle(${targets}) {
68-
return new ru.tinkoff.kora.application.graph.Lifecycle() {
69-
@Override
70-
public reactor.core.publisher.Mono<?> init() {
71-
return null;
72-
}
73-
74-
@Override
75-
public reactor.core.publisher.Mono<?> release() {
76-
return null;
77-
}
78-
};
67+
@ru.tinkoff.kora.common.annotation.Root
68+
default Object someLifecycle(${targets}) {
69+
return new Object();
7970
}
8071
""";
8172
for (int i = 0; i < requiredDependencies.length; i++) {

aop/aop-annotation-processor/src/main/java/ru/tinkoff/kora/aop/annotation/processor/AopProcessor.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import com.squareup.javapoet.*;
44
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
6-
import ru.tinkoff.kora.annotation.processor.common.CommonUtils;
7-
import ru.tinkoff.kora.annotation.processor.common.ProcessingErrorException;
8-
import ru.tinkoff.kora.annotation.processor.common.TagUtils;
6+
import ru.tinkoff.kora.annotation.processor.common.*;
97
import ru.tinkoff.kora.common.Component;
108
import ru.tinkoff.kora.common.Tag;
119
import ru.tinkoff.kora.common.annotation.Generated;
@@ -192,6 +190,9 @@ public TypeSpec applyAspects(TypeElement typeElement) {
192190
if (tag != null) {
193191
typeBuilder.addAnnotation(AnnotationSpec.get(tag));
194192
}
193+
if (AnnotationUtils.isAnnotationPresent(typeElement, CommonClassNames.root)) {
194+
typeBuilder.addAnnotation(CommonClassNames.root);
195+
}
195196

196197
var appliedProcessors = new LinkedHashSet<String>();
197198
appliedProcessors.add(AopAnnotationProcessor.class.getCanonicalName());

aop/aop-symbol-processor/src/main/kotlin/ru/tinkoff/kora/aop/symbol/processor/AopProcessor.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@ import com.squareup.kotlinpoet.ksp.toClassName
1010
import com.squareup.kotlinpoet.ksp.toTypeName
1111
import com.squareup.kotlinpoet.ksp.toTypeVariableName
1212
import ru.tinkoff.kora.common.Component
13-
import ru.tinkoff.kora.ksp.common.KoraSymbolProcessingEnv
13+
import ru.tinkoff.kora.ksp.common.*
14+
import ru.tinkoff.kora.ksp.common.AnnotationUtils.isAnnotationPresent
1415
import ru.tinkoff.kora.ksp.common.KspCommonUtils.generated
1516
import ru.tinkoff.kora.ksp.common.exception.ProcessingErrorException
16-
import ru.tinkoff.kora.ksp.common.findMethods
17-
import ru.tinkoff.kora.ksp.common.makeTagAnnotationSpec
18-
import ru.tinkoff.kora.ksp.common.parseTags
1917
import kotlin.reflect.KClass
2018

2119
@KspExperimental
@@ -111,6 +109,9 @@ class AopProcessor(private val aspects: List<KoraAspect>, private val resolver:
111109
typeBuilder.addAnnotation(tags.makeTagAnnotationSpec())
112110
}
113111
}
112+
if (classDeclaration.isAnnotationPresent(CommonClassNames.root)) {
113+
typeBuilder.addAnnotation(CommonClassNames.root)
114+
}
114115

115116
val classFunctions = findMethods(classDeclaration) { f ->
116117
!f.isConstructor() && (f.isPublic() || f.isProtected())

cache/cache-caffeine/src/test/java/ru/tinkoff/kora/cache/caffeine/testdata/AppWithConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package ru.tinkoff.kora.cache.caffeine.testdata;
22

3-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle;
43
import ru.tinkoff.kora.cache.caffeine.CaffeineCacheModule;
54
import ru.tinkoff.kora.common.KoraApp;
5+
import ru.tinkoff.kora.common.annotation.Root;
66
import ru.tinkoff.kora.config.common.Config;
77
import ru.tinkoff.kora.config.common.DefaultConfigExtractorsModule;
88
import ru.tinkoff.kora.config.common.factory.MapConfigFactory;
@@ -23,7 +23,8 @@ default Config config() {
2323
));
2424
}
2525

26-
default MockLifecycle object(CacheableTargetSync cacheableTargetSync, CacheableTargetMono cacheableTargetMono) {
26+
@Root
27+
default CacheableMockLifecycle object(CacheableTargetSync cacheableTargetSync, CacheableTargetMono cacheableTargetMono) {
2728
return new CacheableMockLifecycle(cacheableTargetMono, cacheableTargetSync);
2829
}
2930
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package ru.tinkoff.kora.cache.caffeine.testdata;
22

3-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle;
4-
5-
public record CacheableMockLifecycle(CacheableTargetMono mono, CacheableTargetSync sync) implements MockLifecycle {
3+
public record CacheableMockLifecycle(CacheableTargetMono mono, CacheableTargetSync sync) {
64

75
}

cache/cache-redis/src/test/java/ru/tinkoff/kora/cache/redis/testdata/AppWithConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package ru.tinkoff.kora.cache.redis.testdata;
22

3-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle;
43
import ru.tinkoff.kora.cache.redis.CacheRunner;
54
import ru.tinkoff.kora.cache.redis.DefaultRedisCacheModule;
65
import ru.tinkoff.kora.cache.redis.client.SyncRedisClient;
76
import ru.tinkoff.kora.common.KoraApp;
7+
import ru.tinkoff.kora.common.annotation.Root;
88
import ru.tinkoff.kora.config.common.Config;
99
import ru.tinkoff.kora.config.common.DefaultConfigExtractorsModule;
1010
import ru.tinkoff.kora.config.common.factory.MapConfigFactory;
@@ -23,7 +23,8 @@ default Config config() {
2323
));
2424
}
2525

26-
default MockLifecycle object(CacheableTargetSync cacheableTargetSync, CacheableTargetMono cacheableTargetMono, SyncRedisClient cacheClient) {
26+
@Root
27+
default CacheableMockLifecycle object(CacheableTargetSync cacheableTargetSync, CacheableTargetMono cacheableTargetMono, SyncRedisClient cacheClient) {
2728
return new CacheableMockLifecycle(cacheableTargetMono, cacheableTargetSync, cacheClient);
2829
}
2930
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package ru.tinkoff.kora.cache.redis.testdata;
22

3-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle;
43
import ru.tinkoff.kora.cache.redis.client.SyncRedisClient;
54

6-
public record CacheableMockLifecycle(CacheableTargetMono mono, CacheableTargetSync sync, SyncRedisClient client) implements MockLifecycle {
5+
public record CacheableMockLifecycle(CacheableTargetMono mono, CacheableTargetSync sync, SyncRedisClient client) {
76

87
}

database/database-annotation-processor/src/test/java/ru/tinkoff/kora/database/common/annotation/processor/app/TestKoraApp.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package ru.tinkoff.kora.database.common.annotation.processor.app;
22

33
import org.mockito.Mockito;
4-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle;
54
import ru.tinkoff.kora.common.KoraApp;
5+
import ru.tinkoff.kora.common.annotation.Root;
66
import ru.tinkoff.kora.database.common.annotation.Query;
77
import ru.tinkoff.kora.database.common.annotation.Repository;
88
import ru.tinkoff.kora.database.jdbc.JdbcConnectionFactory;
@@ -20,8 +20,9 @@ default JdbcConnectionFactory jdbcQueryExecutorAccessor() {
2020
return Mockito.mock(JdbcConnectionFactory.class);
2121
}
2222

23-
default MockLifecycle mockLifecycle(TestRepository testRepository) {
24-
return MockLifecycle.empty();
23+
@Root
24+
default Object mockLifecycle(TestRepository testRepository) {
25+
return new Object();
2526
}
2627

2728
}

database/database-symbol-processor/src/test/kotlin/ru/tinkoff/kora/database/symbol/processor/app/TestKoraApp.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package ru.tinkoff.kora.database.symbol.processor.app
22

33
import org.mockito.Mockito
4-
import ru.tinkoff.kora.annotation.processor.common.MockLifecycle
54
import ru.tinkoff.kora.common.KoraApp
5+
import ru.tinkoff.kora.common.annotation.Root
66
import ru.tinkoff.kora.database.common.annotation.Query
77
import ru.tinkoff.kora.database.common.annotation.Repository
88
import ru.tinkoff.kora.database.jdbc.JdbcConnectionFactory
@@ -20,7 +20,6 @@ interface TestKoraApp {
2020
return Mockito.mock<JdbcConnectionFactory>(JdbcConnectionFactory::class.java)
2121
}
2222

23-
fun mockLifecycle(testRepository: TestRepository): MockLifecycle {
24-
return MockLifecycle.empty()
25-
}
23+
@Root
24+
fun mockLifecycle(testRepository: TestRepository) = Any()
2625
}

0 commit comments

Comments
 (0)