I suppose I need to learn more about how Spring support is implemented in 
Wicket. My thinking was that the injected property would simply get set to 
null. Then the getter for that injected property can perform a null check and 
lazily initialize it with a default type if necessary:
 
@SpringBean(name = "someService")
private Service service;
 
public Service getService() {
    if (service == null) {
        service = new DefaultService();
    }
    return service;
}
 
This allows for default implementation to be provided that can then be 
overridden by declaring the bean in Spring. I've used this type of pattern with 
Spring in other settings and thought it might be useful in Wicket too.

________________________________

From: Igor Vaynberg [mailto:[EMAIL PROTECTED]
Sent: Wed 3/19/2008 5:49 PM
To: [email protected]
Subject: Re: Suggested Enhancement To Spring Support



you want to swallow the exception?

then you would return a null into a proxy and cause an npe later...

-igor


On Wed, Mar 19, 2008 at 1:43 PM, Zappaterrini, Larry
<[EMAIL PROTECTED]> wrote:
> It might be a nice improvement to Wicket's Spring support to allow for
>  missing bean definitions to be handled gracefully. This would allow for
>  the use of a sane default in the absence of explicit declaration in the
>  context XML. Right now using the Spring annotations support I get the
>  following error when I don't define the object in the XML:
>
>  org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
>  named 'beanName' is defined
>      at
>  org.springframework.beans.factory.support.DefaultListableBeanFactory.get
>  BeanDefinition(DefaultListableBeanFactory.java:355)
>      at
>  org.springframework.beans.factory.support.AbstractBeanFactory.getMergedB
>  eanDefinition(AbstractBeanFactory.java:800)
>      at
>  org.springframework.beans.factory.support.AbstractBeanFactory.isSingleto
>  n(AbstractBeanFactory.java:343)
>      at
>  org.springframework.context.support.AbstractApplicationContext.isSinglet
>  on(AbstractApplicationContext.java:654)
>      at
>  org.apache.wicket.spring.SpringBeanLocator.isSingletonBean(SpringBeanLoc
>  ator.java:133)
>      at
>  org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.get
>  FieldValue(AnnotProxyFieldValueFactory.java:91)
>      at org.apache.wicket.injection.Injector.inject(Injector.java:108)
>      at
>  org.apache.wicket.injection.ConfigurableInjector.inject(ConfigurableInje
>  ctor.java:39)
>      at
>  org.apache.wicket.injection.ComponentInjector.onInstantiation(ComponentI
>  njector.java:52)
>      at
>  org.apache.wicket.Application.notifyComponentInstantiationListeners(Appl
>  ication.java:973)
>      at org.apache.wicket.Component.<init>(Component.java:866)
>
>  ... truncated for brevity
>
>  Using getSpringContext().contains(String) either within or as an exposed
>  method of SpringBeanLocator would probably be sufficient to avoid
>  hitting this exception.
>
>  Thanks,
>  Larry
>
>  ______________
>
>  The information contained in this message is proprietary and/or 
> confidential. If you are not the
>  intended recipient, please: (i) delete the message and all copies; (ii) do 
> not disclose,
>  distribute or use the message in any manner; and (iii) notify the sender 
> immediately. In addition,
>  please be aware that any message addressed to our domain is subject to 
> archiving and review by
>  persons other than the intended recipient. Thank you.
>  _____________
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



______________

The information contained in this message is proprietary and/or confidential. 
If you are not the 
intended recipient, please: (i) delete the message and all copies; (ii) do not 
disclose, 
distribute or use the message in any manner; and (iii) notify the sender 
immediately. In addition, 
please be aware that any message addressed to our domain is subject to 
archiving and review by 
persons other than the intended recipient. Thank you.
_____________

Reply via email to