7070import io .quarkus .deployment .builditem .GeneratedResourceBuildItem ;
7171import io .quarkus .deployment .builditem .HotDeploymentWatchedFileBuildItem ;
7272import io .quarkus .deployment .pkg .builditem .BuildSystemTargetBuildItem ;
73- import io .quarkus .gizmo .MethodDescriptor ;
7473import io .quarkus .gizmo2 .ClassOutput ;
7574import io .quarkus .gizmo2 .Const ;
7675import io .quarkus .gizmo2 .Expr ;
8180import io .quarkus .gizmo2 .creator .BlockCreator ;
8281import io .quarkus .gizmo2 .creator .ClassCreator ;
8382import io .quarkus .gizmo2 .desc .ClassMethodDesc ;
83+ import io .quarkus .gizmo2 .desc .ConstructorDesc ;
8484import io .quarkus .gizmo2 .desc .MethodDesc ;
8585import io .quarkus .qute .EvalContext ;
8686import 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 ;
0 commit comments