I have the following defined in myapp-infrastructure.xml
I also have the perService defined in myapp-service.xml like soCode:<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer" lazy-init="true"> <property name="propertyEditorRegistrars"> <list> <ref bean="customPropertyEditorRegistrar"/> </list> </property> </bean> <bean id="customPropertyEditorRegistrar" class="my-app.infrastructure.CustomPropertyEditorRegistrar" lazy-init="true"> <property name="perService" ref="petService"/> </bean>
I register my properyties like soCode:<bean id="petService" class="my-app.pet.petService"> <property name="petDao" ref="petDao"/> </bean>
Code:public void registerCustomEditors(PropertyEditorRegistry registry) { registry.registerCustomEditor(Pet.class, new PetPropertyEditor(PetService)); }
Some of my Service methods are annotated with the Transactional annotation.
When I attach a debugger to my application service and view these service methods injected I can see that the service classes are proxied, however when I run the tests the proxies disappear, what I believe is happening is that the CustomEditorConfigurer is being instantiated in my test before the classes are scanned for annotations and because the service is set up as a singleton it just keeps returning me a concrete implementation rather then the proxy. When I set up my service class to be a prototype I still get a concrete class injected into the CustomEditorConfigurer, however my tests have the correct proxied instance injected into them. I have also tried telling CustomEditorConfigurer and customPropertyEditorRegistrar to be lazy beans however so far they refuse.
Should I file this in JIRA?
Cheers,
Richard


Reply With Quote