Skip to content

Commit 2b9d87e

Browse files
committed
fix: change auto-service scope from implementation to compileOnly
- Changed auto-service from 'implementation' to 'compileOnly' in redis-om-spring module - Added test to verify annotation processor service registration via ServiceLoader - auto-service is only needed during compilation to generate META-INF/services files This prevents auto-service from being a transitive dependency at runtime, reducing the dependency footprint as it's not needed after compilation. Fixes #651
1 parent f143221 commit 2b9d87e

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

redis-om-spring/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ dependencies {
1818
api "com.squareup:javapoet:${javapoetVersion}"
1919

2020
compileOnly "javax.enterprise:cdi-api:${cdi}"
21-
implementation "com.google.auto.service:auto-service:${autoServiceVersion}"
21+
compileOnly "com.google.auto.service:auto-service:${autoServiceVersion}"
2222
annotationProcessor "com.google.auto.service:auto-service:${autoServiceVersion}"
2323
}

tests/src/test/java/com/redis/om/spring/metamodel/MetamodelGeneratorTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import org.junit.jupiter.api.Test;
99
import org.junit.jupiter.api.extension.ExtendWith;
1010

11+
import javax.annotation.processing.Processor;
1112
import javax.tools.JavaFileObject;
1213
import java.io.IOException;
1314
import java.util.List;
1415
import java.util.Locale;
16+
import java.util.ServiceLoader;
1517
import java.util.stream.Collectors;
1618

1719
import static org.assertj.core.api.Assertions.assertThat;
@@ -30,6 +32,26 @@
3032
{ MetamodelGenerator.class }
3133
)
3234
class MetamodelGeneratorTest {
35+
36+
@Test
37+
void testAnnotationProcessorServiceRegistration() {
38+
// Verify that MetamodelGenerator is properly registered as a service
39+
// This ensures that the @AutoService annotation is working correctly
40+
ServiceLoader<Processor> loader = ServiceLoader.load(Processor.class);
41+
boolean foundMetamodelGenerator = false;
42+
43+
for (Processor processor : loader) {
44+
if (processor instanceof MetamodelGenerator) {
45+
foundMetamodelGenerator = true;
46+
break;
47+
}
48+
}
49+
50+
assertThat(foundMetamodelGenerator)
51+
.as("MetamodelGenerator should be discoverable via ServiceLoader")
52+
.isTrue();
53+
}
54+
3355
@Test
3456
@Classpath(
3557
"data.metamodel.ValidDocumentIndexed"

0 commit comments

Comments
 (0)