Create the assetSource inside bind method then inject it inside the contributeSerrviceOverride and instead of addInstance use plain add
On Fri, Jan 31, 2014 at 7:43 PM, garz <g...@gmx.net> wrote: > With addInstance the exception is: > > java.lang.IllegalStateException: Construction of service 'ServiceOverride' > has failed due to recursion: the service depends on itself in some way. > Please check > org.apache.tapestry5.ioc.internal.services.ServiceOverrideImpl(Map) (at > ServiceOverrideImpl.java:31) via > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) (at > TapestryIOCModule.java:49) for references to another service that is itself > dependent on service 'ServiceOverride'. > > On 31.01.2014, at 17:25, Dusko Jovanovski <dusk...@gmail.com> wrote: > > > try configuration.addInstance(AssetSource.class, > MyAssetSourceImpl.class); > > > > Here's the documentation for MappedConfiguration: > > > http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/MappedConfiguration.html > > > > > > On Fri, Jan 31, 2014 at 5:05 PM, garz <g...@gmx.net> wrote: > > > >> Hi all, > >> > >> i want to override the AssetSource service. I am doing it like described > >> in > http://tapestry.apache.org/ioc-cookbook-overriding-ioc-services.htmllikethis: > >> > >> @Contribute(ServiceOverride.class) > >> public static void setupApplicationServiceOverrides( > >> MappedConfiguration<Class, Object> > configuration) { > >> configuration.add(AssetSource.class, > >> MyAssetSourceImpl.class); > >> } > >> > >> But the following error occurs: > >> Exception constructing service 'PageSource': Error invoking method > public > >> org.apache.tapestry5.internal.services.PageSource > >> > org.apache.tapestry5.internal.services.InternalModule.buildPageSource(org.apache.tapestry5.internal.services.PageSourceImpl,org.apache.tapestry5.services.InvalidationEventHub,org.apache.tapestry5.services.InvalidationEventHub): > >> Exception constructing service 'ComponentMessagesInvalidationEventHub': > >> Error invoking method public static > >> org.apache.tapestry5.services.InvalidationEventHub > >> > org.apache.tapestry5.services.TapestryModule.buildComponentMessagesInvalidationEventHub(org.apache.tapestry5.services.messages.ComponentMessagesSource): > >> Exception constructing service 'ComponentMessagesSource': Error invoking > >> service contribution method > >> > org.apache.tapestry5.services.TapestryModule.contributeComponentMessagesSource(AssetSource, > >> Resource, OrderedConfiguration): Cannot cast java.lang.Class to > >> org.apache.tapestry5.services.AssetSource > >> > >> What needs to be done to override the AssetSource service? > >> > >> Best regards > >