[
https://issues.apache.org/jira/browse/WICKET-7126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18058942#comment-18058942
]
ASF GitHub Bot commented on WICKET-7126:
----------------------------------------
pedrosans commented on code in PR #1369:
URL: https://github.com/apache/wicket/pull/1369#discussion_r2813553630
##########
wicket-cdi/src/main/java/org/apache/wicket/cdi/BeanManagerLookup.java:
##########
@@ -100,47 +83,22 @@ public BeanManager lookup()
return null;
}
}
- },
- FALLBACK {
- @Override
- public BeanManager lookup()
- {
- return
CdiConfiguration.get(Application.get()).getFallbackBeanManager();
- }
};
public abstract BeanManager lookup();
}
- private static BeanManagerLookupStrategy lastSuccessful =
BeanManagerLookupStrategy.CUSTOM;
-
- private BeanManagerLookup()
- {
- }
-
public static BeanManager lookup()
{
- BeanManager ret = lastSuccessful.lookup();
- if (ret != null)
- return ret;
-
for (BeanManagerLookupStrategy curStrategy :
BeanManagerLookupStrategy.values())
{
- ret = curStrategy.lookup();
+ BeanManager ret = curStrategy.lookup();
if (ret != null)
{
- lastSuccessful = curStrategy;
return ret;
}
}
-
- throw new IllegalStateException(
- "No BeanManager found via the CDI provider and no
fallback specified. Check your "
- + "CDI setup or specify a fallback BeanManager
in the CdiConfiguration.");
+ return null;
Review Comment:
To maintain the fallbackBeanManager logic without a exception try/catch
hassle. Right now the user can:
```
bm = BeanManagerLookup.lookup();
if (bm == null)
bm = fallbackBeamManager;
new CdiConfiguration(bm);
```
provide their own fallback option if the lookup fail. Conceptually, the new
BeanManagerLookup is just a lookup and not the class encapsulating the entire
BeanManager resolution code as previously done. Being so I found it ok to
return null. I can change the javadoc to better explain the new type role.
> 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)