Skip to content

Commit 200c67f

Browse files
committed
Qute: convert BeanConfiguratorBase.creator() usages to Gizmo 2
1 parent 15c57c5 commit 200c67f

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/MessageBundleProcessor.java

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070
import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
7171
import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
7272
import io.quarkus.deployment.pkg.builditem.BuildSystemTargetBuildItem;
73-
import io.quarkus.gizmo.MethodDescriptor;
7473
import io.quarkus.gizmo2.ClassOutput;
7574
import io.quarkus.gizmo2.Const;
7675
import io.quarkus.gizmo2.Expr;
@@ -81,6 +80,7 @@
8180
import io.quarkus.gizmo2.creator.BlockCreator;
8281
import io.quarkus.gizmo2.creator.ClassCreator;
8382
import io.quarkus.gizmo2.desc.ClassMethodDesc;
83+
import io.quarkus.gizmo2.desc.ConstructorDesc;
8484
import io.quarkus.gizmo2.desc.MethodDesc;
8585
import io.quarkus.qute.EvalContext;
8686
import io.quarkus.qute.EvaluatedParams;
@@ -274,22 +274,25 @@ List<MessageBundleBuildItem> processBundles(BeanArchiveIndexBuildItem beanArchiv
274274

275275
// Generate implementations
276276
// name -> impl class
277-
Map<String, String> generatedImplementations = generateImplementations(bundles, generatedClasses, generatedResources,
277+
Map<String, ClassDesc> generatedImplementations = generateImplementations(bundles, generatedClasses, generatedResources,
278278
messageTemplateMethods, index);
279279

280280
// Register synthetic beans
281281
for (MessageBundleBuildItem bundle : bundles) {
282282
ClassInfo bundleInterface = bundle.getDefaultBundleInterface();
283-
beanRegistration.getContext().configure(bundleInterface.name()).addType(bundle.getDefaultBundleInterface().name())
283+
beanRegistration.getContext().configure(bundleInterface.name())
284+
.addType(bundle.getDefaultBundleInterface().name())
284285
// The default message bundle - add both @Default and @Localized
285286
.addQualifier(DotNames.DEFAULT).addQualifier().annotation(Names.LOCALIZED)
286287
.addValue("value", getDefaultLocale(bundleInterface.declaredAnnotation(Names.BUNDLE), locales)).done()
287288
.unremovable()
288-
.scope(Singleton.class).creator(mc -> {
289+
.scope(Singleton.class)
290+
.creator(cg -> {
291+
BlockCreator bc = cg.createMethod();
292+
289293
// Just create a new instance of the generated class
290-
mc.returnValue(
291-
mc.newInstance(MethodDescriptor
292-
.ofConstructor(generatedImplementations.get(bundleInterface.name().toString()))));
294+
bc.return_(bc.new_(ConstructorDesc.of(
295+
generatedImplementations.get(bundleInterface.name().toString()))));
293296
}).done();
294297

295298
// Localized interfaces
@@ -298,11 +301,13 @@ List<MessageBundleBuildItem> processBundles(BeanArchiveIndexBuildItem beanArchiv
298301
.addType(bundle.getDefaultBundleInterface().name())
299302
.addQualifier(localizedInterface.declaredAnnotation(Names.LOCALIZED))
300303
.unremovable()
301-
.scope(Singleton.class).creator(mc -> {
304+
.scope(Singleton.class)
305+
.creator(cg -> {
306+
BlockCreator bc = cg.createMethod();
307+
302308
// Just create a new instance of the generated class
303-
mc.returnValue(
304-
mc.newInstance(MethodDescriptor.ofConstructor(
305-
generatedImplementations.get(localizedInterface.name().toString()))));
309+
bc.return_(bc.new_(ConstructorDesc.of(
310+
generatedImplementations.get(localizedInterface.name().toString()))));
306311
}).done();
307312
}
308313
// Localized files
@@ -312,11 +317,12 @@ List<MessageBundleBuildItem> processBundles(BeanArchiveIndexBuildItem beanArchiv
312317
.addQualifier().annotation(Names.LOCALIZED)
313318
.addValue("value", entry.getKey()).done()
314319
.unremovable()
315-
.scope(Singleton.class).creator(mc -> {
320+
.scope(Singleton.class).creator(cg -> {
321+
BlockCreator bc = cg.createMethod();
322+
316323
// Just create a new instance of the generated class
317-
mc.returnValue(
318-
mc.newInstance(MethodDescriptor
319-
.ofConstructor(generatedImplementations.get(entry.getValue().toString()))));
324+
bc.return_(bc.new_(ConstructorDesc.of(
325+
generatedImplementations.get(entry.getValue().toString()))));
320326
}).done();
321327
}
322328
}
@@ -723,13 +729,13 @@ void generateExamplePropertiesFiles(List<MessageBundleMethodBuildItem> messageBu
723729
}
724730
}
725731

726-
private Map<String, String> generateImplementations(List<MessageBundleBuildItem> bundles,
732+
private Map<String, ClassDesc> generateImplementations(List<MessageBundleBuildItem> bundles,
727733
BuildProducer<GeneratedClassBuildItem> generatedClasses,
728734
BuildProducer<GeneratedResourceBuildItem> generatedResources,
729735
BuildProducer<MessageBundleMethodBuildItem> messageTemplateMethods,
730736
IndexView index) throws IOException {
731737

732-
Map<String, String> generatedTypes = new HashMap<>();
738+
Map<String, ClassDesc> generatedTypes = new HashMap<>();
733739

734740
ClassOutput defaultClassOutput = new GeneratedClassGizmo2Adaptor(generatedClasses, generatedResources,
735741
new AppClassPredicate());
@@ -745,7 +751,7 @@ private Map<String, String> generateImplementations(List<MessageBundleBuildItem>
745751
// Generate implementation for the default bundle interface
746752
String bundleImpl = generateImplementation(bundle, null, null, bundleInterfaceWrapper,
747753
defaultClassOutput, messageTemplateMethods, defaultKeyToMap, null, index);
748-
generatedTypes.put(bundleInterface.name().toString(), bundleImpl);
754+
generatedTypes.put(bundleInterface.name().toString(), ClassDesc.of(bundleImpl));
749755

750756
// Generate imeplementation for each localized interface
751757
for (Entry<String, ClassInfo> entry : bundle.getLocalizedInterfaces().entrySet()) {
@@ -758,8 +764,8 @@ private Map<String, String> generateImplementations(List<MessageBundleBuildItem>
758764
keyToMap);
759765

760766
generatedTypes.put(entry.getValue().name().toString(),
761-
generateImplementation(bundle, bundleInterface, bundleImpl, localizedInterfaceWrapper,
762-
defaultClassOutput, messageTemplateMethods, keyToMap, null, index));
767+
ClassDesc.of(generateImplementation(bundle, bundleInterface, bundleImpl, localizedInterfaceWrapper,
768+
defaultClassOutput, messageTemplateMethods, keyToMap, null, index)));
763769
}
764770

765771
// Generate implementation for each localized file
@@ -780,8 +786,9 @@ public String apply(String className) {
780786
}
781787
}));
782788
generatedTypes.put(localizedFile.toString(),
783-
generateImplementation(bundle, bundleInterface, bundleImpl, new SimpleClassInfoWrapper(bundleInterface),
784-
localeAwareGizmoAdaptor, messageTemplateMethods, keyToTemplate, locale, index));
789+
ClassDesc.of(generateImplementation(bundle, bundleInterface, bundleImpl,
790+
new SimpleClassInfoWrapper(bundleInterface), localeAwareGizmoAdaptor, messageTemplateMethods,
791+
keyToTemplate, locale, index)));
785792
}
786793
}
787794
return generatedTypes;

extensions/qute/deployment/src/test/java/io/quarkus/qute/deployment/inject/InjectNamespaceResolverTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.quarkus.arc.deployment.SyntheticBeanBuildItem;
1818
import io.quarkus.builder.BuildContext;
1919
import io.quarkus.builder.BuildStep;
20+
import io.quarkus.gizmo2.Const;
2021
import io.quarkus.qute.Qute;
2122
import io.quarkus.qute.Template;
2223
import io.quarkus.qute.deployment.Hello;
@@ -40,8 +41,8 @@ public void execute(BuildContext context) {
4041
context.produce(SyntheticBeanBuildItem.configure(String.class)
4142
.addQualifier().annotation(Identifier.class).addValue("value", "synthetic").done()
4243
.name("synthetic")
43-
.creator(mc -> {
44-
mc.returnValue(mc.load("Yes!"));
44+
.creator(cg -> {
45+
cg.createMethod().return_(Const.of("Yes!"));
4546
})
4647
.done());
4748
}

0 commit comments

Comments
 (0)