Skip to content

Commit ba8bdd1

Browse files
authored
Only generate scope constants for custom scopes. (helidon-io#9504)
1 parent 86122fc commit ba8bdd1

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

service/inject/codegen/src/main/java/io/helidon/service/inject/codegen/InjectionExtension.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,17 +2270,31 @@ private void qualifiersMethod(ClassModel.Builder classModel, DescribedService se
22702270

22712271
private void scopeMethod(ClassModel.Builder classModel, DescribedService service) {
22722272
// TypeName scope()
2273-
classModel.addField(scopesField -> scopesField
2274-
.isStatic(true)
2275-
.isFinal(true)
2276-
.name("SCOPE")
2277-
.type(TypeNames.TYPE_NAME)
2278-
.addContentCreate(service.scope()));
2273+
TypeName scope = service.scope();
22792274

2280-
classModel.addMethod(scopeMethod -> scopeMethod.name("scope")
2281-
.addAnnotation(Annotations.OVERRIDE)
2282-
.returnType(TypeNames.TYPE_NAME)
2283-
.addContentLine("return SCOPE;"));
2275+
if (scope.packageName().equals(INJECTION_SINGLETON.packageName())
2276+
&& scope.enclosingNames().size() == 1 && scope.enclosingNames().getFirst().equals("Injection")) {
2277+
// only method
2278+
classModel.addMethod(scopeMethod -> scopeMethod.name("scope")
2279+
.addAnnotation(Annotations.OVERRIDE)
2280+
.returnType(TypeNames.TYPE_NAME)
2281+
.addContent("return ")
2282+
.addContent(scope)
2283+
.addContentLine(".TYPE;"));
2284+
} else {
2285+
// field and method
2286+
classModel.addField(scopesField -> scopesField
2287+
.isStatic(true)
2288+
.isFinal(true)
2289+
.name("SCOPE")
2290+
.type(TypeNames.TYPE_NAME)
2291+
.addContentCreate(scope));
2292+
2293+
classModel.addMethod(scopeMethod -> scopeMethod.name("scope")
2294+
.addAnnotation(Annotations.OVERRIDE)
2295+
.returnType(TypeNames.TYPE_NAME)
2296+
.addContentLine("return SCOPE;"));
2297+
}
22842298
}
22852299

22862300
private void weightMethod(ClassModel.Builder classModel, DescribedService service) {

0 commit comments

Comments
 (0)