If your code or the code you are testing is using context assets
(which tapestry-jpa does), you need to set the context:
        ApplicationGlobals globals =
registry.getObject(ApplicationGlobals.class, null);
        globals.storeContext(new PageTesterContext(contextPath));
        registry.performRegistryStartup();

(From PageTester)

Kalle


On Fri, Feb 24, 2012 at 5:34 AM, Serge Eby <sd...@hotmail.com> wrote:
> Hi,
>
> I am using the spock snapshot (0.6) and when tapestry-jpa (5.3.2) is added,
> I am getting this error:
>
> --- excerpt ----
>
> java.lang.RuntimeException: Exception constructing service
> 'RegistryStartup': Error invoking service contribution method
> org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager,
> boolean): Exception constructing service 'EntityManagerSource': Coercion of
> /META-INF/persistence.xml to type org.apache.tapestry5.ioc.Resource (via
> String --> org.apache.tapestry5.ioc.Resource) failed: Exception constructing
> service 'AssetSource': Error invoking constructor public
> org.apache.tapestry5.internal.services.AssetSourceImpl(org.apache.tapestry5.ioc.services.ThreadLocale,java.util.Map,org.apache.tapestry5.ioc.services.SymbolSource):
> Exception constructing service 'ContextAssetFactory': Error invoking method
> public org.apache.tapestry5.services.AssetFactory
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(org.apache.tapestry5.services.ApplicationGlobals,org.apache.tapestry5.services.assets.AssetPathConstructor,org.apache.tapestry5.services.AssetPathConverter):
> java.lang.AssertionError
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75)
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
>        at
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
>        at
> org.spockframework.tapestry.TapestryInterceptor.createAndStartupRegistry(TapestryInterceptor.java:98)
>
> .....
>
> ---- end excerpt -------
>
> The test class looks like this:
>
> @SubModule([TapestryModule, JpaModule, AppModule])
> class JPACrudDAOSpec extends Specification {
>
>    def "dummy test"() {
>        expect:
>        name.size() == length
>
>        where:
>        name      | length
>        "Bob"      | 3
>        "Dylan"   | 5
>    }
> }
>
>
>
> The standard output has a little bit more information but I can't figure out
> why the assets are not found.
>
>
> --- standard output ---
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.ioc.services.TapestryIOCModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.spockframework.tapestry.ExtensionModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.TapestryModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.internal.services.InternalModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.assets.AssetsModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.pageload.PageLoadModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> com.example.newapp.services.AppModule
> [INFO] o.a.t.i.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.jpa.JpaModule
> [ERROR] o.a.t.i.Registry Error invoking method public
> org.apache.tapestry5.services.AssetFactory
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(org.apache.tapestry5.services.ApplicationGlobals,org.apache.tapestry5.services.assets.AssetPathConstructor,org.apache.tapestry5.services.AssetPathConverter):
> java.lang.AssertionError
> [ERROR] o.a.t.i.Registry Operations trace:
> [ERROR] o.a.t.i.Registry [ 1] Realizing service RegistryStartup
> [ERROR] o.a.t.i.Registry [ 2] Instantiating service RegistryStartup
> implementation via
> org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, List) (at
> RegistryStartup.java:36) via
> org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) (at
> TapestryIOCModule.java:49)
> [ERROR] o.a.t.i.Registry [ 3] Creating plan to instantiate
> org.apache.tapestry5.ioc.internal.services.RegistryStartup via public
> org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List)
> [ERROR] o.a.t.i.Registry [ 4] Determining injection value for parameter #2
> (java.util.List)
> [ERROR] o.a.t.i.Registry [ 5] Collecting ordered configuration for service
> RegistryStartup
> [ERROR] o.a.t.i.Registry [ 6] Invoking
> org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager,
> boolean) (at JpaModule.java:183)
> [ERROR] o.a.t.i.Registry [ 7] Realizing service EntityManagerSource
> [ERROR] o.a.t.i.Registry [ 8] Instantiating service EntityManagerSource
> implementation via
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl(Logger, Resource,
> PersistenceUnitConfigurer, Map) (at EntityManagerSourceImpl.java:56) via
> org.apache.tapestry5.jpa.JpaModule.bind(ServiceBinder) (at
> JpaModule.java:44)
> [ERROR] o.a.t.i.Registry [ 9] Creating plan to instantiate
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl via public
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl(org.slf4j.Logger,org.apache.tapestry5.ioc.Resource,org.apache.tapestry5.jpa.PersistenceUnitConfigurer,java.util.Map)
> [ERROR] o.a.t.i.Registry [10] Determining injection value for parameter #2
> (org.apache.tapestry5.ioc.Resource)
> [ERROR] o.a.t.i.Registry [11] Resolving object of type
> org.apache.tapestry5.ioc.Resource using MasterObjectProvider
> [ERROR] o.a.t.i.Registry [12] Realizing service AssetSource
> [ERROR] o.a.t.i.Registry [13] Instantiating service AssetSource
> implementation via
> org.apache.tapestry5.internal.services.AssetSourceImpl(ThreadLocale, Map,
> SymbolSource) (at AssetSourceImpl.java:49) via
> org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
> TapestryModule.java:308)
> [ERROR] o.a.t.i.Registry [14] Invoking constructor
> org.apache.tapestry5.internal.services.AssetSourceImpl(ThreadLocale, Map,
> SymbolSource) (at AssetSourceImpl.java:49) via
> org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
> TapestryModule.java:308) (for service 'AssetSource')
> [ERROR] o.a.t.i.Registry [15] Realizing service ContextAssetFactory
> [ERROR] o.a.t.i.Registry [16] Instantiating service ContextAssetFactory
> implementation via
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(ApplicationGlobals,
> AssetPathConstructor, AssetPathConverter) (at TapestryModule.java:1225)
> [ERROR] o.a.t.i.Registry [17] Constructing service implementation via
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(ApplicationGlobals,
> AssetPathConstructor, AssetPathConverter) (at TapestryModule.java:1225)
> [ERROR] o.a.t.s.T.ContextAssetFactory Construction of service
> ContextAssetFactory failed: Error invoking method public
> org.apache.tapestry5.services.AssetFactory
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(org.apache.tapestry5.services.ApplicationGlobals,org.apache.tapestry5.services.assets.AssetPathConstructor,org.apache.tapestry5.services.AssetPathConverter):
> java.lang.AssertionError
> org.apache.tapestry5.ioc.internal.OperationException: Error invoking method
> public org.apache.tapestry5.services.AssetFactory
> org.apache.tapestry5.services.TapestryModule.buildContextAssetFactory(org.apache.tapestry5.services.ApplicationGlobals,org.apache.tapestry5.services.assets.AssetPathConstructor,org.apache.tapestry5.services.AssetPathConverter):
> java.lang.AssertionError
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
> ~[tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> [tapestry-ioc-5.3.2.jar:na]
>        at $AssetFactory_127522006f5a3dd5.delegate(Unknown Source) [na:na]
>        at $AssetFactory_127522006f5a3dd5.getRootResource(Unknown Source) 
> [na:na]
>        at
> org.apache.tapestry5.internal.services.AssetSourceImpl.<init>(AssetSourceImpl.java:60)
> [tapestry-core-5.3.2.jar:na]
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
> [na:1.6.0_29]
>        at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> [na:1.6.0_29]
>        at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> [na:1.6.0_29]
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> [na:1.6.0_29]
>        at
> org.apache.tapestry5.ioc.internal.util.ConstructorInvoker.invoke(ConstructorInvoker.java:48)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> [tapestry-ioc-5.3.2.jar:na]
>        at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> [tapestry-ioc-5.3.2.jar:na]
>        at $AssetSource_127522006f5a3dbf.delegate(Unknown Source) [na:na]
>        at $AssetSource_127522006f5a3dbf.resourceForPath(Unknown Source) 
> [na:na]
>
> .....
>
>
> -----------
>
>
> Has anybody successfully accomplished this?
>
>
> Thanks,
>
>
> /Serge
>
> --
> View this message in context: 
> http://tapestry-users.832.n2.nabble.com/T5-3-tapestry-jpa-and-spock-tp7314846p7314846.html
> Sent from the Tapestry Users 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
>

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

Reply via email to