Hey all, 

I'm trying to get AppFuse's CRUD generation to work with the latest Tapestry
5.3.3 release and Spring 3.1. I can't seem to get Tapestry to recognize a
Generics-based Spring class. Here's the code that's generated in
PersonList.java: 

import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.annotations.Service;

    @Inject 
    @Service("personManager") 
    private GenericManager<Person, Long> personManager; 

When I run "mvn test -Dtest=PersonListTest", I get the following stacktrace. 

Running com.company.webapp.pages.PersonListTest 
WARN [main] RequestHandler.addDependency(78) | Unable to add
'SpringMockHttpRequestAndResponse' as a dependency of 'CheckForUpdates', as
that forms a dependency cycle ('CheckForUpdates' depends on itself via
'SpringMockHttpRequestAndResponse'). The dependency has been ignored. 
ERROR [main] Registry.log(127) | Service id 'personManager' is not defined
by any module. 
ERROR [main] Registry.log(128) | Operations trace: 
ERROR [main] Registry.log(137) | [ 1] Creating instantiator for component
class com.company.webapp.pages.PersonList 
ERROR [main] Registry.log(137) | [ 2] Running component class
transformations on com.company.webapp.pages.PersonList 
ERROR [main] Registry.log(137) | [ 3] Injecting field 
com.company.webapp.pages.PersonList.personManager 
ERROR [main] Registry.log(137) | [ 4] Resolving object of type
org.appfuse.service.GenericManager using MasterObjectProvider 
ERROR [main] RequestExceptionHandler.handleRequestException(63) | Processing
of request failed with uncaught exception: Error obtaining injected value
for field com.company.webapp.pages.PersonList.personManager: Service id
'personManager' is not defined by any module. 
java.lang.RuntimeException: Error obtaining injected value for field
com.company.webapp.pages.PersonList.personManager: Service id
'personManager' is not defined by any module. 
        at
org.apache.tapestry5.internal.transform.InjectWorker$2.run(InjectWorker.java:81)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
 
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
 
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116) 
        at
org.apache.tapestry5.internal.transform.InjectWorker.transform(InjectWorker.java:67)
 
        at
$ComponentClassTransformWorker2_128a2841c22331da.transform(Unknown Source) 
        at
$ComponentClassTransformWorker2_128a2841c22331ce.transform(Unknown Source) 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$3.run(ComponentInstantiatorSourceImpl.java:325)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
 
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
 
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116) 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.transform(ComponentInstantiatorSourceImpl.java:278)
 
        at
org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:348)
 
        at
org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)
 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
        at
org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:516)
 
        at
org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:189)
 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2.invoke(ComponentInstantiatorSourceImpl.java:234)
 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2.invoke(ComponentInstantiatorSourceImpl.java:228)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
 
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
 
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.createInstantiatorForClass(ComponentInstantiatorSourceImpl.java:226)
 
        at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:216)
 
        at
$ComponentInstantiatorSource_128a2841c22331cd.getInstantiator(Unknown
Source) 
        at
org.apache.tapestry5.internal.services.ComponentModelSourceImpl.getModel(ComponentModelSourceImpl.java:34)
 
        at
org.apache.tapestry5.internal.services.ComponentModelSourceImpl.getPageModel(ComponentModelSourceImpl.java:39)
 
        at $ComponentModelSource_128a2841c22331cc.getPageModel(Unknown
Source) 
        at
org.apache.tapestry5.internal.services.MetaDataLocatorImpl$2.valueForKey(MetaDataLocatorImpl.java:104)
 
        at
org.apache.tapestry5.internal.services.MetaDataLocatorImpl.getSymbolExpandedValueFromCache(MetaDataLocatorImpl.java:119)
 
        at
org.apache.tapestry5.internal.services.MetaDataLocatorImpl.findMeta(MetaDataLocatorImpl.java:99)
 
        at $MetaDataLocator_128a2841c22331c4.findMeta(Unknown Source) 
        at
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.isWhitelistOnlyAndNotValid(ComponentEventLinkEncoderImpl.java:510)
 
        at
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:496)
 
        at
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:460)
 
        at
org.apache.tapestry5.internal.services.linktransform.LinkTransformerInterceptor.decodePageRenderRequest(LinkTransformerInterceptor.java:68)
 
        at
$ComponentEventLinkEncoder_128a2841c22331af.decodePageRenderRequest(Unknown
Source) 
        at
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41)
 
        at $Dispatcher_128a2841c22331b0.dispatch(Unknown Source) 
        at $Dispatcher_128a2841c22331a7.dispatch(Unknown Source) 
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
 
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
org.apache.tapestry5.internal.test.EndOfRequestCleanupFilter.service(EndOfRequestCleanupFilter.java:42)
 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
com.company.webapp.services.AppTestModule$1.service(AppTestModule.java:37) 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105)
 
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95)
 
        at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
 
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119)
 
        at $RequestHandler_128a2841c22331a9.service(Unknown Source) 
        at $RequestHandler_128a2841c2233199.service(Unknown Source) 
        at
org.apache.tapestry5.test.PageTester.renderPageAndReturnResponse(PageTester.java:205)
 
        at
org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:176) 
        at
com.company.webapp.pages.PersonListTest.testList(PersonListTest.java:22) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
        at java.lang.reflect.Method.invoke(Method.java:597) 
        at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
 
        at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
 
        at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
 
        at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
 
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) 
        at
org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
 
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) 
        at
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
 
        at
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
 
        at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
 
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
 
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) 
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) 
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) 
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) 
        at
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
 
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) 
        at
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
 
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220) 
        at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
 
        at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) 
        at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
 
        at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
        at java.lang.reflect.Method.invoke(Method.java:597) 
        at
org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
 
        at $Proxy0.invoke(Unknown Source) 
        at
org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
 
        at
org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
 
        at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) 
Caused by: org.apache.tapestry5.ioc.internal.OperationException: Service id
'personManager' is not defined by any module. 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
 
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
 
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
 
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) 
        at
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45)
 
        at $MasterObjectProvider_128a2841c223318b.provide(Unknown Source) 
        at
org.apache.tapestry5.internal.services.DefaultInjectionProvider.provideInjection(DefaultInjectionProvider.java:53)
 
        at $InjectionProvider2_128a2841c22331dd.provideInjection(Unknown
Source) 
        at $InjectionProvider2_128a2841c22331d7.provideInjection(Unknown
Source) 
        at
org.apache.tapestry5.internal.transform.InjectWorker$2.run(InjectWorker.java:73)
 
        ... 103 more 

The "personManager" bean is defined in WEB-INF/applicationContext.xml as
follows:

    <bean id="personManager"
class="org.appfuse.service.impl.GenericManagerImpl">
        <constructor-arg>
            <bean class="org.appfuse.dao.hibernate.GenericDaoHibernate">
                <constructor-arg value="com.company.model.Person"/>
            </bean>
        </constructor-arg>
    </bean>

This same code worked fine in previous Tapestry 5.x releases.

Any advice would be great.

Thanks,

Matt

--
View this message in context: 
http://tapestry.1045711.n5.nabble.com/Tapestry-5-3-3-Spring-3-1-and-Inject-tp5711099.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to