[ 
https://issues.apache.org/jira/browse/WICKET-7126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18058933#comment-18058933
 ] 

ASF GitHub Bot commented on WICKET-7126:
----------------------------------------

pedrosans commented on code in PR #1369:
URL: https://github.com/apache/wicket/pull/1369#discussion_r2813478246


##########
wicket-cdi/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java:
##########
@@ -110,6 +77,13 @@ public CdiConfiguration setFallbackBeanManager(BeanManager 
fallbackBeanManager)
         */
        public void configure(Application application)
        {
+               if(beanManager == null)
+                       beanManager = BeanManagerLookup.lookup();
+
+               if (beanManager == null)
+                       throw new IllegalStateException(
+                               "No BeanManager was set or found via the CDI 
provider. Check your CDI setup or specify a BeanManager in the 
CdiConfiguration.");

Review Comment:
   > > Another benefit of this change is the reduced number of times the new 
code will make expensive (time consuming) JNDI lookups.
   
   > Is it really ?
   > Before there was a BeanManagerLookup#lastSuccessful cache. Now it is gone 
and every BeanManagerLookup#lookup() always makes two JNDI lookups.
   
   There are no code inside the module calling BeanManagerLookup lookup more 
than once (CdiConfiguration#configure is meant to be called once), contrary to 
the previous implementation. Lets say NonContextual made one call to 
BeanManagerLookup during a request response; the number of times a JNDI lookup 
got made would be tied to the number of requests.





> CdiConfiguration new API
> ------------------------
>
>                 Key: WICKET-7126
>                 URL: https://issues.apache.org/jira/browse/WICKET-7126
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-cdi
>            Reporter: Pedro Henrique Oliveira dos Santos
>            Assignee: Pedro Santos
>            Priority: Minor
>
> Context: originally BeanManagerLookup contained the entire logic to resolve 
> the app BeanManager, with no option to set one manually, for instance. This 
> was improved last year, but the code became a mix of states beingĀ  kept in 
> CdiConfiguration and BeanManagerLookup.
> Improvement:
>  * move the entire logic + state to CdiConfiguration
>  ** to remove the CdiConfiguration.set/getFallbackBeanManager and its related 
> logic
>  ** to remove the BeanManagerLookup lastSuccessful state



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to