Thats a good approach too, I might look into creating a utility bean to do that injection that also inject a null when the context is shutting down. Making sure the solution works nicely with spring context and servlet context reloads which cause problems right now. I'm thinking the injecting a null would work with this model to fit the reloads requirement.
-Eric Drew Wills wrote: > Eric Dalquist wrote: >> ... >> >> The problem is in some places that the PortalApplicationContextFacade >> is used to access the BeanFactory there is no access to a >> ServletContext which the WebApplicationContextUtils needs to access >> the replacement WebApplicationContext. >> The affected areas are: >> CError - constructor, loads a IThrowableToElement implementation >> which defines ways to render certain exceptions >> PersonDirectory - getPersonAttributeDao, loads the root >> IPersonAttributeDao for use by other parts of the framework. This >> method is called from: Authentication, PersonAttributeGroupStore, >> CPersonAttributes, and PersonDirNameFinder >> >> I'm not sure what the best solution for this is. I'd like to avoid as >> much custom Spring related code as possible but we may still need a >> static accessor that doesn't require the ServletContext to access the >> WebApplicationContext object. > > Eric, > > What about an approach like this (example from PersonDirectory)... > > ***** > > ++ Java: > > public class PersonDirectory { > > private static IPersonAttributeDao impl; > > public static Object setPersonAttributeDao(IPersonAttributeDao dao) { > impl = dao; > return PersonDirectory.class; // shouldn't matter what's returned > } > > ... > > } > > ++ BeansML: > > <bean id="personDirectoryService" factory-method="setPersonAttributeDao"> > <constructor-arg> > <ref bean="personAttributeDao"/> > <constructor-arg> > </bean> > > ***** > > This should cause the bean container to inject the normal > 'personAttributeDao' into the staticly-accessed PersonDirectory > service to support legacy code. > > drew wills >
smime.p7s
Description: S/MIME Cryptographic Signature