Re: [T5][FAQ] How to configure a service that likely will be overriden by an AliasContribution?
Now I don't understand exactly what that means. In my case I have two modules. Module one ships with an interface and a default implementation that is preconfigured. As a user of module one, in my module two, I contributeAlias(..) to override the preconfigured default implementation. The application as whole will now use the service configured and 'implemented' in module two. What would be the usecase of @Local? When I have only one module and want to override via an AliasContribution ..? Why would I d that? Howard Lewis Ship schrieb: Looks good to me too. I'm working on adding @Local which will make it easier to contribute Alias contributions that are services from within the same module. But often you can get by, as you did, with just an instance. On Mon, Aug 11, 2008 at 4:06 AM, Filip S. Adamsen <[EMAIL PROTECTED]> wrote: Hi, I wouldn't use Configuration>, but rather Configuration. Otherwise you won't be able to configure multiple alias overrides at once. Apart from that, everything looks fine. -Filip Michael Gerzabek skrev: Usecase: tapestry-spring-security offers integration between Tapestry 5 an Spring Security [1]. It's implemented as a Tapestry IoC/Core module. This module uses a PasswordEncoder shipped by Spring Security (they ship also a couple of standard implementations of PasswordEncoder). For the module to function correctly an implementation class of PasswordEncoder (the service in charge) is needed. Now, there are two ways to configure the module: 1.) gracefully: The module declares a standard service for PasswordEncoder and assumes the main module will define an AliasContribution to override with whatever specific instance is needed. 2.) tough: The module doesn't declare a standard service for PasswordEncoder. It rather assumes that the user of the module will do so. If the user of the module doesn't provide an implementation a RuntimeException is thrown and the container won't start up. Obviously there are arguments for both directions. In tapestry-spring-security we wanted to follow line 1.) This leads us to the FAQ. [FAQ] How to configure a service that likely will be overriden by an AliasContribution? i. Supplier: The only thing the supplier of a module has to do is to bind the interface (PasswordEncoder) to the default class (PlaintextPasswordEncoder) - or provide a build method if he needs to set it up. public static void bind(final ServiceBinder binder) { binder.bind( PasswordEncoder.class, PlaintextPasswordEncoder.class ).withMarker( SpringSecurityServices.class); } ii. User: Now if you want to use a supplied module and you want to override a service defined there the only thing you have to do is to contribute to the Alias service. public static void contributeAlias( Configuration> configuration ) { configuration.add( AliasContribution.create( PasswordEncoder.class, new ShaPasswordEncoder() ) ); } -- Crowd, Is this correct? Do I miss something? Regards, Michael [1] http://www.localhost.nu/java/tapestry5-acegi/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5][FAQ] How to configure a service that likely will be overriden by an AliasContribution?
Hi, Oh, I see, you're right. In case you want to contribute a bunch of services to AliasService you have to ommit the type you're about to contribute because otherwise the compiler won't eat the code. Thanks. Filip S. Adamsen schrieb: Hi, I wouldn't use Configuration>, but rather Configuration. Otherwise you won't be able to configure multiple alias overrides at once. Apart from that, everything looks fine. -Filip Michael Gerzabek skrev: Usecase: tapestry-spring-security offers integration between Tapestry 5 an Spring Security [1]. It's implemented as a Tapestry IoC/Core module. This module uses a PasswordEncoder shipped by Spring Security (they ship also a couple of standard implementations of PasswordEncoder). For the module to function correctly an implementation class of PasswordEncoder (the service in charge) is needed. Now, there are two ways to configure the module: 1.) gracefully: The module declares a standard service for PasswordEncoder and assumes the main module will define an AliasContribution to override with whatever specific instance is needed. 2.) tough: The module doesn't declare a standard service for PasswordEncoder. It rather assumes that the user of the module will do so. If the user of the module doesn't provide an implementation a RuntimeException is thrown and the container won't start up. Obviously there are arguments for both directions. In tapestry-spring-security we wanted to follow line 1.) This leads us to the FAQ. [FAQ] How to configure a service that likely will be overriden by an AliasContribution? i. Supplier: The only thing the supplier of a module has to do is to bind the interface (PasswordEncoder) to the default class (PlaintextPasswordEncoder) - or provide a build method if he needs to set it up. public static void bind(final ServiceBinder binder) { binder.bind( PasswordEncoder.class, PlaintextPasswordEncoder.class ).withMarker( SpringSecurityServices.class); } ii. User: Now if you want to use a supplied module and you want to override a service defined there the only thing you have to do is to contribute to the Alias service. public static void contributeAlias( Configuration> configuration ) { configuration.add( AliasContribution.create( PasswordEncoder.class, new ShaPasswordEncoder() ) ); } -- Crowd, Is this correct? Do I miss something? Regards, Michael [1] http://www.localhost.nu/java/tapestry5-acegi/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [ANNOUNCE] Tapestry 5.0.14
Great! 2008/8/11 Howard Lewis Ship <[EMAIL PROTECTED]> > The latest release of Tapestry, Tapestry 5.0.14 , is now available. > > Tapestry 5.0.14 is just about feature complete and can be considered a > beta release. A release candidate is expected in the near future. > > 5.0.14 addresses a large number of bugs,, including a specific bug > related to using Tapestry with Groovy. The version of Javassist has > changed, which resolves a number of nonsensical errors using JDK 1.6. > The approach to localization has simplified. > > See the release notes for more details: > > http://tapestry.apache.org/tapestry5/release-notes.html > > Download Tapestry 5.0.14 from: > > http://tapestry.apache.org/download.html > > -- > Howard M. Lewis Ship > > Creator Apache Tapestry and Apache HiveMind > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Yet Another Java EE Developer!
Re: T5: Works in Jetty but not in Tomcat
I've had issues with Tomcat not totally clearing its cache dir, too. Make sure you get that. -- Kevin On Mon, Aug 11, 2008 at 5:15 PM, Howard Lewis Ship <[EMAIL PROTECTED]> wrote: > Caused by: java.lang.NoSuchMethodError: > > org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; > > This represents an issue w.r.t. the Javassist library. Make sure you > have the correct version, and only that version, on the classpath. > Check your server/libs. See what's in your .war file. > >
Re: Failing to run my first Tapestry page
http://repo1.maven.org/maven2/javassist/javassist/3.8.0.GA/ On Tue, Aug 12, 2008 at 12:20 AM, Geoff Callender <[EMAIL PROTECTED]> wrote: > Hi all, > > I can't find a repository with the new javassist (3.8.ga). Can someone tell > me where Tapestry's maven is picking it up from? > > Geoff > > On 12/08/2008, at 1:25 AM, Howard Lewis Ship wrote: > >> This is likely a JDK 1.6 problem, resolved in the now-available 5.0.14 >> by using a newer version of Javassist. >> >> On Thu, Aug 7, 2008 at 7:49 AM, Greg <[EMAIL PROTECTED]> wrote: >>> >>> Hi all, >>> >>> As I have some spare time I'm looking at Tapestry and so I tried two >>> tutorials, including the official (I guess?) one here >>> http://tapestry.apache.org/tapestry5/tutorial1/first.html. >>> However I cannot have it run as the following errors appear when I >>> enter "mvn jetty:run" (I'll only post the first lines). >>> I couldn't find any hint using google so I'd appreciate some help :) >>> >>> Regards, >>> Greg >>> >>> [INFO] Starting jetty 6.1.9 ... >>> 2008-08-07 16:46:07.203::INFO: jetty-6.1.9 >>> 2008-08-07 16:46:08.482::INFO: No Transaction manager found - if your >>> webapp requires one, please configure one. >>> [ERROR] TapestryModule.ServletApplicationInitializer Construction of >>> service ServletApplicationInitializer failed: Unable to >>> instantiate class org.apache.tapestry5.services.TapestryModule as a >>> module builder: java.lang.ArrayIndexOutOfBoundsException >>> java.lang.RuntimeException: Unable to instantiate class >>> org.apache.tapestry5.services.TapestryModule as a module builder: jav >>> a.lang.ArrayIndexOutOfBoundsException >>> at >>> org.apache.tapestry5.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:325) >>> at >>> org.apache.tapestry5.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java:253) >>> at >>> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getModuleBuilder(ServiceResourcesImpl.java:105) >>> at >>> org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:59) >>> at >>> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) >>> at >>> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java: >>> 52) >>> at >>> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:50) >>> at >>> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckW >>> rapper.java:60) >>> at >>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65) >>> at >>> $ServletApplicationInitializer_11b9da1cfae._delegate()Lorg.apache.tapestry5.services.ServletApplicationInitializer >>> ;($ServletApplicationInitializer_11b9da1cfae.java:???) >>> at >>> $ServletApplicationInitializer_11b9da1cfae.initializeApplication(Ljavax.servlet.ServletContext;)V($ServletApplicat >>> ionInitializer_11b9da1cfae.java:???) >>> at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) >>> at >>> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>> at >>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) >>> at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) >>> at >>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) >>> at >>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:510) >>> at >>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) >>> at >>> org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:110) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>> at >>> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >>> at >>> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>> at >>> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) >>> at org.mortbay.jetty.Server.doStart(Server.java:222) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>> at >>> org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) >>> at >>> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:357) >>> at >>> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.
Re: [T5] setup logging
Ah, okay. No, you don't have to configure SLF4J - it's using log4j by default. Looks like Sven might have given the answer you need. Does it work if you use instead of ? -Filip Andy Pahne skrev: No, that's not the case if you use log4j XML configuration file format. Still no idea... Do I have to configure SLF4J or is it sufficient to configure log4j? Andy Filip S. Adamsen schrieb: Hi, You need to prefix the logger name with log4j.category. or it won't work. Or, at least that's how it was back when I used log4j - I'm now using SLF4J with Logback and I'm not going back. :) -Filip - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Failing to run my first Tapestry page
Hi all, I can't find a repository with the new javassist (3.8.ga). Can someone tell me where Tapestry's maven is picking it up from? Geoff On 12/08/2008, at 1:25 AM, Howard Lewis Ship wrote: This is likely a JDK 1.6 problem, resolved in the now-available 5.0.14 by using a newer version of Javassist. On Thu, Aug 7, 2008 at 7:49 AM, Greg <[EMAIL PROTECTED]> wrote: Hi all, As I have some spare time I'm looking at Tapestry and so I tried two tutorials, including the official (I guess?) one here http://tapestry.apache.org/tapestry5/tutorial1/first.html. However I cannot have it run as the following errors appear when I enter "mvn jetty:run" (I'll only post the first lines). I couldn't find any hint using google so I'd appreciate some help :) Regards, Greg [INFO] Starting jetty 6.1.9 ... 2008-08-07 16:46:07.203::INFO: jetty-6.1.9 2008-08-07 16:46:08.482::INFO: No Transaction manager found - if your webapp requires one, please configure one. [ERROR] TapestryModule.ServletApplicationInitializer Construction of service ServletApplicationInitializer failed: Unable to instantiate class org.apache.tapestry5.services.TapestryModule as a module builder: java.lang.ArrayIndexOutOfBoundsException java.lang.RuntimeException: Unable to instantiate class org.apache.tapestry5.services.TapestryModule as a module builder: jav a.lang.ArrayIndexOutOfBoundsException at org .apache .tapestry5 .ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java: 325) at org .apache .tapestry5.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java: 253) at org .apache .tapestry5 .ioc .internal .ServiceResourcesImpl.getModuleBuilder(ServiceResourcesImpl.java:105) at org .apache .tapestry5 .ioc .internal .ServiceBuilderMethodInvoker .createObject(ServiceBuilderMethodInvoker.java:59) at org .apache .tapestry5 .ioc .internal .SingletonServiceLifecycle .createService(SingletonServiceLifecycle.java:29) at org .apache .tapestry5 .ioc .internal .LifecycleWrappedServiceCreator .createObject(LifecycleWrappedServiceCreator.java: 52) at org .apache .tapestry5 .ioc .internal .InterceptorStackBuilder.createObject(InterceptorStackBuilder.java: 50) at org .apache .tapestry5 .ioc .internal .RecursiveServiceCreationCheckWrapper .createObject(RecursiveServiceCreationCheckW rapper.java:60) at org .apache .tapestry5 .ioc .internal .services .JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java: 65) at $ ServletApplicationInitializer_11b9da1cfae ._delegate ()Lorg.apache.tapestry5.services.ServletApplicationInitializer ;($ServletApplicationInitializer_11b9da1cfae.java:???) at $ ServletApplicationInitializer_11b9da1cfae .initializeApplication (Ljavax.servlet.ServletContext;)V($ServletApplicat ionInitializer_11b9da1cfae.java:???) at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org .mortbay .jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) at org .mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java: 1220) at org .mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java: 510) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java: 448) at org .mortbay .jetty .plugin .Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java: 110) at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org .mortbay .jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org .mortbay .jetty .handler .ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org .mortbay .jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org .mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java: 130) at org.mortbay.jetty.Server.doStart(Server.java:222) at org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org .mortbay .jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) at org .mortbay .jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java: 357) at org .mortbay .jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:293) Caused by: java.lang.ArrayIndexOutOfBoundsException at org .apache .tapestry5 .ioc .internal.util.InternalUtils.calculateParameters(InternalUtils.java: 239) at org .apache .tapestry5 .ioc.interna
Re: T5: Works in Jetty but not in Tomcat
Caused by: java.lang.NoSuchMethodError: org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; This represents an issue w.r.t. the Javassist library. Make sure you have the correct version, and only that version, on the classpath. Check your server/libs. See what's in your .war file. On Mon, Aug 11, 2008 at 8:45 AM, wassila <[EMAIL PROTECTED]> wrote: > > Hello, > I have poblem to deploy my app (tapestry5) in Tomcat 6. It works fine in > Jetty but not in Tomcat. > the exception is : > SEVERE: Exception starting filter diffusionAssignation > java.lang.RuntimeException: Error building service proxy for service > 'ServletApplicationInitializer' (at > org.apache.tapestry5.services.TapestryModule.buildServletApplicationInitializer(Logger, > List, ApplicationInitializer) (at TapestryModule.java:951)): Unable to > create class $ServletApplicationInitializer_11bb25928f0: > org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; >at > org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:245) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:163) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:91) >at > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:299) >at > org.apache.tapestry5.ioc.internal.RegistryWrapper.getService(RegistryWrapper.java:53) >at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:82) >at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) >at > org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) >at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) >at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) >at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4356) >at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) >at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) >at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) >at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) >at > org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) >at > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) >at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147) >at > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) >at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) >at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) >at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) >at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) >at > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) >at > org.apache.catalina.core.StandardService.start(StandardService.java:516) >at > org.apache.catalina.core.StandardServer.start(StandardServer.java:710) >at org.apache.catalina.startup.Catalina.start(Catalina.java:578) >at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >at java.lang.reflect.Method.invoke(Unknown Source) >at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) >at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) > Caused by: java.lang.RuntimeException: Unable to create class > $ServletApplicationInitializer_11bb25928f0: > org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; >at > org.apache.tapestry5.ioc.internal.services.CtClassSourceImpl.createClass(CtClassSourceImpl.java:100) >at > org.apache.tapestry5.ioc.internal.services.AbstractFab.createClass(AbstractFab.java:89) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.createProxyInstance(ModuleImpl.java:372) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.createProxy(ModuleImpl.java:335) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:227) >... 32 more > Caused by: java.lang.NoSuchMethodError: > org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDo
Better (more generic) paging for Grid AND Loop. Interested in adding it to Tapestry?
Hi, I am creating a PagedLoop component that is able to use Grid's paging infrastructure directly. Are you interested in including such component in Tapestry corelib (a question is primarily for Howard and other relevant people here)? Here is an explanation why such component is preferable to t5components' PageLoop and even useful for minor improvement/generalization of Grid's infrastructure (can be implemented even without changing GridDataSource but read on): 1 (the main reason): In plain old HTML, Table (T5 Grid) should be used for displaying natural tabulated data, NOT for visual layouting of listings (CSS is preferred for such purpose, if you do not understand what I am talking about, see http://www.google.com/search?q=html+presentation+css+vs+table). Therefore, Loop should be the first choice if we want to display some business entity's details. Current Loop can do just that except that it does not support pagination. So, if you want pagination, you should use t5components' PagedLoop or fall back to Grid. 2. t5c's PagedLoop has two major problems: a) it duplicates the whole Pager/DataSource infrastructure. For default purposes it is not an issue, but if you need to implement on-demand retrieval of paginated database data on your own you can not reuse the PersistentDataSource that you created for the Grid (and it is an issue in real world apps). b) even if you do not mind duplicated persistent source, t5c's PAgedLoop has major flaws - it does not support DataSource interface that you could implement. It displays only ordinary Iterable. Moreover, PagedSource that it provides is neither interface, nor used in the actual code. So you're stuck with inefficient display of ordinary collections/lists, which may be ok for many situations but a real dealbreaker for others. 3. How this can be improved: a) refactor t5c's PagedLoop to use Grid's infrastructure (GridDataSource and GridPager). I have already done a prototype of this for my aplication, and it was, surprisingly, pretty easy. The one thing that still needs to be solved is how to elegantly extract one page of data from GridDataSource to supply it as the Loop's source. b) It can be done outside of the DataSource, bu shouldn't it be better if we improve GridDataSource to support Iterable? Of course, that can be put in a subclass of GridDataSource, but one DataSource interface for both Loops and Grids would be simpler and cleaner. So, to summarize, I would implement this for my application, and I wont to know are you interested to add such implementation into core Tapestry? Of course, if anybody have an idea how to make it even simpler, please add your suggestions... I you are interested, please help me or point the information on how to do it (necessary procedure, tests etc.). -- View this message in context: http://www.nabble.com/Better-%28more-generic%29-paging-for-Grid-AND-Loop.-Interested-in-adding-it-to-Tapestry--tp18933731p18933731.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: dynamically created form components
Check out https://issues.apache.org/jira/browse/TAPESTRY-2491. The encoder in use here is the PrimaryKeyEncoder. The encoders contributed by tap-hibernate are ValueEncoders. There is currently no bridge between them. There is also currently no way to map between the two encoder spaces. There is also no way to "nicely" lookup a PrimaryKeyEncoder, the way there is with ValueEncoder. For now, you'll need to provide your own PrimaryKeyEncoder. It can (probably) be a wrapper around the value encoders. Cheers, Robert On Aug 10, 2008, at 8/108:04 PM , Chris Lewis wrote: Hello again, I have another issue related to the one about checkboxes that I've known would be an issue at whatever point I needed to use dynamically created form components. In my case I'm creating a bunch of t:checkboxes, each representing the (un)selection of a hibernate entity. I'm currently stuck with two issues: 1) I need an encoder, apparently. I use a loop over the entities within a form to create the checkboxes, and T5 throws an exception saying: Render queue error in BeginRender[info/Buyer:loop]: Error serializing component action for component ... Isn't tapestry-hibernate's PK encoder supposed to handle this? In an effort I set the form to t:volatile="true", but that seems to make it impossible to access the current object (loop's value parameter) within the iteration, which I have. Why isn't the value encoder kicking in? 2) I need labels for the dynamic checkboxes, which means I need to know the t:id's of them. How is this possible when looping? Hasn't someone dealt with this? Thanks in advance, Chris -- http://thegodcode.net - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Works in Jetty but not in Tomcat
Hello, I have poblem to deploy my app (tapestry5) in Tomcat 6. It works fine in Jetty but not in Tomcat. the exception is : SEVERE: Exception starting filter diffusionAssignation java.lang.RuntimeException: Error building service proxy for service 'ServletApplicationInitializer' (at org.apache.tapestry5.services.TapestryModule.buildServletApplicationInitializer(Logger, List, ApplicationInitializer) (at TapestryModule.java:951)): Unable to create class $ServletApplicationInitializer_11bb25928f0: org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:245) at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:163) at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:91) at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:299) at org.apache.tapestry5.ioc.internal.RegistryWrapper.getService(RegistryWrapper.java:53) at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:82) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.RuntimeException: Unable to create class $ServletApplicationInitializer_11bb25928f0: org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; at org.apache.tapestry5.ioc.internal.services.CtClassSourceImpl.createClass(CtClassSourceImpl.java:100) at org.apache.tapestry5.ioc.internal.services.AbstractFab.createClass(AbstractFab.java:89) at org.apache.tapestry5.ioc.internal.ModuleImpl.createProxyInstance(ModuleImpl.java:372) at org.apache.tapestry5.ioc.internal.ModuleImpl.createProxy(ModuleImpl.java:335) at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:227) ... 32 more Caused by: java.lang.NoSuchMethodError: org.apache.tapestry5.ioc.internal.services.ClassFactoryClassPool.toClass(Ljavassist/CtClass;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class; at org.apache.tapestry5.ioc.internal.services.CtClassSourceImpl.createClass(CtClassSourceImpl.java:92) ... 36 more 11-Aug-2008 11:18:52 AM org.apache.catalina.core.StandardContext start SEVERE: Error filterStart 11-Aug-2008 11:18:52 AM org.apache.catalina.core.StandardContext start thanks -- View this message in context: http://www.nabble.com/T5%3A-Works-in-Jetty-but-not-in-Tomcat-tp10876889p18928355.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To uns
Re: Failing to run my first Tapestry page
Actually the problem was I used BEA's JVM (1.5.0_04) instead of Sun's one - with Tapestry 5.0.13. I don't know if 5.0.14 would have solved this too, but I can give it a try if you want to know. And thanks for the answer! Close one :) Howard Lewis Ship wrote: > > This is likely a JDK 1.6 problem, resolved in the now-available 5.0.14 > by using a newer version of Javassist. > > On Thu, Aug 7, 2008 at 7:49 AM, Greg <[EMAIL PROTECTED]> wrote: >> Hi all, >> >> As I have some spare time I'm looking at Tapestry and so I tried two >> tutorials, including the official (I guess?) one here >> http://tapestry.apache.org/tapestry5/tutorial1/first.html. >> However I cannot have it run as the following errors appear when I >> enter "mvn jetty:run" (I'll only post the first lines). >> I couldn't find any hint using google so I'd appreciate some help :) >> >> Regards, >> Greg >> >> [INFO] Starting jetty 6.1.9 ... >> 2008-08-07 16:46:07.203::INFO: jetty-6.1.9 >> 2008-08-07 16:46:08.482::INFO: No Transaction manager found - if your >> webapp requires one, please configure one. >> [ERROR] TapestryModule.ServletApplicationInitializer Construction of >> service ServletApplicationInitializer failed: Unable to >> instantiate class org.apache.tapestry5.services.TapestryModule as a >> module builder: java.lang.ArrayIndexOutOfBoundsException >> java.lang.RuntimeException: Unable to instantiate class >> org.apache.tapestry5.services.TapestryModule as a module builder: jav >> a.lang.ArrayIndexOutOfBoundsException >>at >> org.apache.tapestry5.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:325) >>at >> org.apache.tapestry5.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java:253) >>at >> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getModuleBuilder(ServiceResourcesImpl.java:105) >>at >> org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:59) >>at >> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) >>at >> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java: >> 52) >>at >> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:50) >>at >> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckW >> rapper.java:60) >>at >> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65) >>at >> $ServletApplicationInitializer_11b9da1cfae._delegate()Lorg.apache.tapestry5.services.ServletApplicationInitializer >> ;($ServletApplicationInitializer_11b9da1cfae.java:???) >>at >> $ServletApplicationInitializer_11b9da1cfae.initializeApplication(Ljavax.servlet.ServletContext;)V($ServletApplicat >> ionInitializer_11b9da1cfae.java:???) >>at >> org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) >>at >> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) >>at >> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>at >> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) >>at >> org.mortbay.jetty.servlet.Context.startContext(Context.java:139) >>at >> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) >>at >> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:510) >>at >> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) >>at >> org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:110) >>at >> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>at >> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >>at >> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) >>at >> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>at >> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >>at >> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>at >> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) >>at org.mortbay.jetty.Server.doStart(Server.java:222) >>at >> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >>at >> org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) >>at >> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:357) >>at >> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:293) >> Caused by: java.lang.ArrayIndexOutOfBoundsException >>at >> org.apache.tapestry5.ioc.in
Re: [T5][FAQ] How to configure a service that likely will be overriden by an AliasContribution?
Looks good to me too. I'm working on adding @Local which will make it easier to contribute Alias contributions that are services from within the same module. But often you can get by, as you did, with just an instance. On Mon, Aug 11, 2008 at 4:06 AM, Filip S. Adamsen <[EMAIL PROTECTED]> wrote: > Hi, > > I wouldn't use Configuration>, but rather > Configuration. Otherwise you won't be able to configure > multiple alias overrides at once. > > Apart from that, everything looks fine. > > -Filip > > Michael Gerzabek skrev: >> >> Usecase: >> tapestry-spring-security offers integration between Tapestry 5 an Spring >> Security [1]. It's implemented as a Tapestry IoC/Core module. >> >> This module uses a PasswordEncoder shipped by Spring Security (they ship >> also a couple of standard implementations of PasswordEncoder). >> >> For the module to function correctly an implementation class of >> PasswordEncoder (the service in charge) is needed. Now, there are two ways >> to configure the module: >> >> 1.) gracefully: The module declares a standard service for PasswordEncoder >> and assumes the main module will define an AliasContribution to override >> with whatever specific instance is needed. >> >> 2.) tough: The module doesn't declare a standard service for >> PasswordEncoder. It rather assumes that the user of the module will do so. >> If the user of the module doesn't provide an implementation a >> RuntimeException is thrown and the container won't start up. >> >> Obviously there are arguments for both directions. In >> tapestry-spring-security we wanted to follow line 1.) This leads us to the >> FAQ. >> >> [FAQ] How to configure a service that likely will be overriden by an >> AliasContribution? >> >> i. Supplier: The only thing the supplier of a module has to do is to bind >> the interface (PasswordEncoder) to the default class >> (PlaintextPasswordEncoder) - or provide a build method if he needs to set it >> up. >> >> public static void bind(final ServiceBinder binder) { >> >> binder.bind( PasswordEncoder.class, >> PlaintextPasswordEncoder.class ).withMarker( >> SpringSecurityServices.class); >> } >> >> ii. User: Now if you want to use a supplied module and you want to >> override a service defined there the only thing you have to do is to >> contribute to the Alias service. >> >> public static void contributeAlias( >> Configuration> configuration ) { >> >> configuration.add( AliasContribution.create( >> PasswordEncoder.class, >> new ShaPasswordEncoder() ) ); >> } >> >> -- >> Crowd, >> >> Is this correct? Do I miss something? >> >> Regards, >> Michael >> >> [1] http://www.localhost.nu/java/tapestry5-acegi/ >> >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Failing to run my first Tapestry page
This is likely a JDK 1.6 problem, resolved in the now-available 5.0.14 by using a newer version of Javassist. On Thu, Aug 7, 2008 at 7:49 AM, Greg <[EMAIL PROTECTED]> wrote: > Hi all, > > As I have some spare time I'm looking at Tapestry and so I tried two > tutorials, including the official (I guess?) one here > http://tapestry.apache.org/tapestry5/tutorial1/first.html. > However I cannot have it run as the following errors appear when I > enter "mvn jetty:run" (I'll only post the first lines). > I couldn't find any hint using google so I'd appreciate some help :) > > Regards, > Greg > > [INFO] Starting jetty 6.1.9 ... > 2008-08-07 16:46:07.203::INFO: jetty-6.1.9 > 2008-08-07 16:46:08.482::INFO: No Transaction manager found - if your > webapp requires one, please configure one. > [ERROR] TapestryModule.ServletApplicationInitializer Construction of > service ServletApplicationInitializer failed: Unable to > instantiate class org.apache.tapestry5.services.TapestryModule as a > module builder: java.lang.ArrayIndexOutOfBoundsException > java.lang.RuntimeException: Unable to instantiate class > org.apache.tapestry5.services.TapestryModule as a module builder: jav > a.lang.ArrayIndexOutOfBoundsException >at > org.apache.tapestry5.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:325) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java:253) >at > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getModuleBuilder(ServiceResourcesImpl.java:105) >at > org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:59) >at > org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) >at > org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java: > 52) >at > org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:50) >at > org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckW > rapper.java:60) >at > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65) >at > $ServletApplicationInitializer_11b9da1cfae._delegate()Lorg.apache.tapestry5.services.ServletApplicationInitializer > ;($ServletApplicationInitializer_11b9da1cfae.java:???) >at > $ServletApplicationInitializer_11b9da1cfae.initializeApplication(Ljavax.servlet.ServletContext;)V($ServletApplicat > ionInitializer_11b9da1cfae.java:???) >at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) >at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) >at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >at > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) >at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) >at > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) >at > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:510) >at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) >at > org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:110) >at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >at > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >at > org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) >at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >at > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) >at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >at > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) >at org.mortbay.jetty.Server.doStart(Server.java:222) >at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) >at > org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) >at > org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:357) >at > org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:293) > Caused by: java.lang.ArrayIndexOutOfBoundsException >at > org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:239) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:306) >at > org.apache.tapestry5.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java:253) >at > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl
[ANNOUNCE] Tapestry 5.0.14
The latest release of Tapestry, Tapestry 5.0.14 , is now available. Tapestry 5.0.14 is just about feature complete and can be considered a beta release. A release candidate is expected in the near future. 5.0.14 addresses a large number of bugs,, including a specific bug related to using Tapestry with Groovy. The version of Javassist has changed, which resolves a number of nonsensical errors using JDK 1.6. The approach to localization has simplified. See the release notes for more details: http://tapestry.apache.org/tapestry5/release-notes.html Download Tapestry 5.0.14 from: http://tapestry.apache.org/download.html -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: dynamically created form components
I found the answer to #1, mentioned in another response, and I just found out how to have dynamically generated labels. Simply: Notice the t:id in the checkbox and the t:for in the label. They are "hardcoded", which I thought would throw exceptions. But no, T5 knows they're being looped and just handles it. Awesome! Chris Lewis wrote: > Hello again, > > I have another issue related to the one about checkboxes that I've known > would be an issue at whatever point I needed to use dynamically created > form components. In my case I'm creating a bunch of t:checkboxes, each > representing the (un)selection of a hibernate entity. I'm currently > stuck with two issues: > > 1) I need an encoder, apparently. I use a loop over the entities within > a form to create the checkboxes, and T5 throws an exception saying: > > Render queue error in BeginRender[info/Buyer:loop]: Error serializing > component action for component ... > > Isn't tapestry-hibernate's PK encoder supposed to handle this? In an > effort I set the form to t:volatile="true", but that seems to make it > impossible to access the current object (loop's value parameter) within > the iteration, which I have. Why isn't the value encoder kicking in? > > 2) I need labels for the dynamic checkboxes, which means I need to know > the t:id's of them. How is this possible when looping? > > Hasn't someone dealt with this? > > Thanks in advance, > Chris > > -- http://thegodcode.net - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: ClassTransformation, TransformMethodSignature and annotation
Not currently. On Mon, Aug 11, 2008 at 6:32 AM, aicfr <[EMAIL PROTECTED]> wrote: > > Hi ! > > Is it possible to inject a field with an annotation with ClassTransformation > or TransformMethodSignature ? > > I saw the method addField (), TransformMethodSignature () but nothing for > adding annotation in a dynamic. > > Thanks ! > -- > View this message in context: > http://n2.nabble.com/ClassTransformation%2C-TransformMethodSignature-and-annotation-tp685924p685924.html > Sent from the Tapestry Users mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
ClassTransformation, TransformMethodSignature and annotation
Hi ! Is it possible to inject a field with an annotation with ClassTransformation or TransformMethodSignature ? I saw the method addField (), TransformMethodSignature () but nothing for adding annotation in a dynamic. Thanks ! -- View this message in context: http://n2.nabble.com/ClassTransformation%2C-TransformMethodSignature-and-annotation-tp685924p685924.html Sent from the Tapestry Users mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Failing to run my first Tapestry page (solution)
I didn't change anything. I found out I was using BEA's JRockit 1.5.0_04, I changed my JAVA_HOME environment variable to use Sun's 1.5.0_11 JVM, and it's now OK. So I guess there may be some incompatibility with JRockit. Anyway, thanks :) Greg Sven Homburg wrote: > > have you updated from the latest trunk ? > or have you change anything in the original source of the tutorial ? > > 2008/8/11 Greg D <[EMAIL PROTECTED]> > >> >> Hi, >> I still have this problem :/ >> I am the only one who tried the tutorial and got this error? >> Thanks, >> Greg >> -- >> View this message in context: >> http://www.nabble.com/Failing-to-run-my-first-Tapestry-page-tp18872267p18922832.html >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > -- > with regards > Sven Homburg > http://tapestry5-components.googlecode.com > http://chenillekit.googlecode.com > > > - > best regards > Sven > -- View this message in context: http://www.nabble.com/Failing-to-run-my-first-Tapestry-page-tp18872267p18925924.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: checkboxes for selecting a sub group of hibernate entities
Ok so I've made some progress after further reading, hacking, and searching.What it comes down to is needing a PrimaryKeyEncoder so that the entity collection can be serialized in the form loop. This raises questions: tapestry-hibernate provides a value encoder based on the primary keys of entities, which is just great. Why can't this be applied to other contexts like looping? I guess that would make the question, can tapestry-hibernate also provide the same kind of implementation for PrimaryKeyEncoder? The concept /seems/ identical. Another, quite beaten question is why are there so many different ways of (un)marshaling objects between the client and server sides? There's been a lot of talk about this on the list and I'm not as concerned about it at the moment as I am getting tapestry-hibernate to provide a PKE for me. But given the fact taht I just declared a private final class to do essentially the same thing as the included value encoder, I have to ask.. chris Chris Lewis wrote: > Hello, > > I have a collection of entities that need to be displayed in a form. A > user must be able to indicate any number of these entities in which they > have interest by checking the box, and I'm at a bit of a loss at how to > handle this elegantly. I've dealt with a variable number of inputs > before, where I used a loop index to update values in a list by > implementing a faux property setter accessed by the loop, but that won't > work with checkboxes because they are boolean. Here's a quick summary: > > I have a table PropertyTypes that has a few records (Condo, Single > Family, Land / Lot, etc). In a form I'd present all of these to the user > as check boxes, and they could select any number of them indicating > their interest: > > [ x ] Condo > [ x ] Single Family > [ ] Land / Lot > > The only way I can think to do this is back that selection by a > collection of booleans, and then compare that list to the list of > entities from the table assuming that the collection sizes are identical > and that the indexes correspond exactly. I don't feel like that is > elegant and am wondering if anyone has ideas on a cleaner / simpler way > of doing this. Thanks! > > -- http://thegodcode.net - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Environmental services during action requests
Do you have an example of such an event? Is there any method that is invoked in the parent component before the event listener in the child component is triggered? And is there a corresponding method where I can remove the variable from the environment again? I haven't found anything in the docs so far. Thanks, Markus On Mon, Aug 11, 2008 at 9:34 AM, Davor Hrg <[EMAIL PROTECTED]> wrote: > enviromentals do not depend on render, > > it depends on you when you provide enviromental variable, > when you will make enviromental available for your components. > you can use any event besides setupRender > > > Davor Hrg > > On Sun, Aug 10, 2008 at 4:59 PM, Markus Joschko <[EMAIL PROTECTED]>wrote: > >> Hi list, >> is there a way to have an environmental service during an action request? >> In the docs a tabmodel is mentioned which can be put into the >> environment during setupRender. >> However if an event happens in an encapsulated tab component and it >> wants to make any sanity checks against the provided model >> it will fall flat as setupRender is not called during action requests. >> >> Regards, >> Markus >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] setup logging
2008/8/11 Andy Pahne <[EMAIL PROTECTED]> > > I tried to setup Tapestry5 logging to level "info", but all "debug" > messages are still logged. I think I did what the documentation told me to > do > http://tapestry.apache.org/tapestry5/guide/logging.html > > Can anybody tell me what I am missing? > > > from my log4j.xml: > > > > > > > > from my log: > > 2008-08-11 13:08:17,437 DEBUG (ComponentClassTransformerImpl.java:177) - > Finished class transformation: InternalClassTransformation[ > public de.net22.oos.b2b.web.pages.secured.packages.NewPackage extends > de.net22.oos.b2b.web.base.BaseB2BPage > > extend method: public boolean > dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent $1) > { > if ($1.isAborted()) return $_; > try > { >if ($1.matches("Success", "", 0)) >{ > $_ = true; > > $1.setMethodDescription("de.net22.oos.b2b.web.pages.secured.packages.NewPackage.onSuccess() > (at NewPackage.java:48)"); > if ($1.storeResult(($w) onSuccess())) return true; >} > } > catch (RuntimeException ex) { throw ex; } > catch (Exception ex) { throw new RuntimeException(ex); } > } > > > > My log4j configuration is read, as all other settings in there are applied. > > Andy > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- with regards Sven Homburg http://www.chenillekit.org http://tapestry5-components.googlecode.com
Re: [T5] setup logging
No, that's not the case if you use log4j XML configuration file format. Still no idea... Do I have to configure SLF4J or is it sufficient to configure log4j? Andy Filip S. Adamsen schrieb: Hi, You need to prefix the logger name with log4j.category. or it won't work. Or, at least that's how it was back when I used log4j - I'm now using SLF4J with Logback and I'm not going back. :) -Filip - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] How to handle DAOs?
I can't any dowload information on the chenillekit site. Is there a maven2 repo anywhere ? Sven Homburg wrote: thats right, one of the reasons to found a new project, is : split the components/services for tapestry5 applications from the rest of the project for a better separation for modules you need or not need. so you can use every module (excepted the tapestry module) for any kind of applications. that means, t5components is completely adept from chenillekit, and the development is stopped but will survive in chenillekit. 2008/8/11 9902468 <[EMAIL PROTECTED]> After quick source code peek it seems that old t5components/commons is the tapestry part of chennillekit. Chenillekit adds stuff to t5c afaik. Is development going on in both projects? Or is chenillekit the way to go now? -99 Lutz Hühnken wrote: Hi Sven, this is the first time i hear of "chenillekit". So I'm wondering (and I'm sure others are, too) - what the relationship is between "chenillekit" and "t5components" ? Are those two names for the same project? Regards, Lutz On Sat, Aug 9, 2008 at 2:13 PM, Sven Homburg <[EMAIL PROTECTED]> wrote: myself is using the chenillekit modules for my own customer projects but the libraries are poorly documented. for the future i suggest the using of chenillekit http://code.google.com/p/chenillekit/ -- with regards Sven Homburg http://tapestry5-components.googlecode.com http://chenillekit.googlecode.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/-T5--How-to-handle-DAOs--tp18901398p18921242.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] setup logging
Hi, You need to prefix the logger name with log4j.category. or it won't work. Or, at least that's how it was back when I used log4j - I'm now using SLF4J with Logback and I'm not going back. :) -Filip Andy Pahne skrev: I tried to setup Tapestry5 logging to level "info", but all "debug" messages are still logged. I think I did what the documentation told me to do http://tapestry.apache.org/tapestry5/guide/logging.html Can anybody tell me what I am missing? from my log4j.xml: from my log: 2008-08-11 13:08:17,437 DEBUG (ComponentClassTransformerImpl.java:177) - Finished class transformation: InternalClassTransformation[ public de.net22.oos.b2b.web.pages.secured.packages.NewPackage extends de.net22.oos.b2b.web.base.BaseB2BPage extend method: public boolean dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent $1) { if ($1.isAborted()) return $_; try { if ($1.matches("Success", "", 0)) { $_ = true; $1.setMethodDescription("de.net22.oos.b2b.web.pages.secured.packages.NewPackage.onSuccess() (at NewPackage.java:48)"); if ($1.storeResult(($w) onSuccess())) return true; } } catch (RuntimeException ex) { throw ex; } catch (Exception ex) { throw new RuntimeException(ex); } } My log4j configuration is read, as all other settings in there are applied. Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[T5] setup logging
I tried to setup Tapestry5 logging to level "info", but all "debug" messages are still logged. I think I did what the documentation told me to do http://tapestry.apache.org/tapestry5/guide/logging.html Can anybody tell me what I am missing? from my log4j.xml: from my log: 2008-08-11 13:08:17,437 DEBUG (ComponentClassTransformerImpl.java:177) - Finished class transformation: InternalClassTransformation[ public de.net22.oos.b2b.web.pages.secured.packages.NewPackage extends de.net22.oos.b2b.web.base.BaseB2BPage extend method: public boolean dispatchComponentEvent(org.apache.tapestry5.runtime.ComponentEvent $1) { if ($1.isAborted()) return $_; try { if ($1.matches("Success", "", 0)) { $_ = true; $1.setMethodDescription("de.net22.oos.b2b.web.pages.secured.packages.NewPackage.onSuccess() (at NewPackage.java:48)"); if ($1.storeResult(($w) onSuccess())) return true; } } catch (RuntimeException ex) { throw ex; } catch (Exception ex) { throw new RuntimeException(ex); } } My log4j configuration is read, as all other settings in there are applied. Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5][FAQ] How to configure a service that likely will be overriden by an AliasContribution?
Hi, I wouldn't use Configuration>, but rather Configuration. Otherwise you won't be able to configure multiple alias overrides at once. Apart from that, everything looks fine. -Filip Michael Gerzabek skrev: Usecase: tapestry-spring-security offers integration between Tapestry 5 an Spring Security [1]. It's implemented as a Tapestry IoC/Core module. This module uses a PasswordEncoder shipped by Spring Security (they ship also a couple of standard implementations of PasswordEncoder). For the module to function correctly an implementation class of PasswordEncoder (the service in charge) is needed. Now, there are two ways to configure the module: 1.) gracefully: The module declares a standard service for PasswordEncoder and assumes the main module will define an AliasContribution to override with whatever specific instance is needed. 2.) tough: The module doesn't declare a standard service for PasswordEncoder. It rather assumes that the user of the module will do so. If the user of the module doesn't provide an implementation a RuntimeException is thrown and the container won't start up. Obviously there are arguments for both directions. In tapestry-spring-security we wanted to follow line 1.) This leads us to the FAQ. [FAQ] How to configure a service that likely will be overriden by an AliasContribution? i. Supplier: The only thing the supplier of a module has to do is to bind the interface (PasswordEncoder) to the default class (PlaintextPasswordEncoder) - or provide a build method if he needs to set it up. public static void bind(final ServiceBinder binder) { binder.bind( PasswordEncoder.class, PlaintextPasswordEncoder.class ).withMarker( SpringSecurityServices.class); } ii. User: Now if you want to use a supplied module and you want to override a service defined there the only thing you have to do is to contribute to the Alias service. public static void contributeAlias( Configuration> configuration ) { configuration.add( AliasContribution.create( PasswordEncoder.class, new ShaPasswordEncoder() ) ); } -- Crowd, Is this correct? Do I miss something? Regards, Michael [1] http://www.localhost.nu/java/tapestry5-acegi/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[T5][FAQ] How to configure a service that likely will be overriden by an AliasContribution?
Usecase: tapestry-spring-security offers integration between Tapestry 5 an Spring Security [1]. It's implemented as a Tapestry IoC/Core module. This module uses a PasswordEncoder shipped by Spring Security (they ship also a couple of standard implementations of PasswordEncoder). For the module to function correctly an implementation class of PasswordEncoder (the service in charge) is needed. Now, there are two ways to configure the module: 1.) gracefully: The module declares a standard service for PasswordEncoder and assumes the main module will define an AliasContribution to override with whatever specific instance is needed. 2.) tough: The module doesn't declare a standard service for PasswordEncoder. It rather assumes that the user of the module will do so. If the user of the module doesn't provide an implementation a RuntimeException is thrown and the container won't start up. Obviously there are arguments for both directions. In tapestry-spring-security we wanted to follow line 1.) This leads us to the FAQ. [FAQ] How to configure a service that likely will be overriden by an AliasContribution? i. Supplier: The only thing the supplier of a module has to do is to bind the interface (PasswordEncoder) to the default class (PlaintextPasswordEncoder) - or provide a build method if he needs to set it up. public static void bind(final ServiceBinder binder) { binder.bind( PasswordEncoder.class, PlaintextPasswordEncoder.class ).withMarker( SpringSecurityServices.class); } ii. User: Now if you want to use a supplied module and you want to override a service defined there the only thing you have to do is to contribute to the Alias service. public static void contributeAlias( Configuration> configuration ) { configuration.add( AliasContribution.create( PasswordEncoder.class, new ShaPasswordEncoder() ) ); } -- Crowd, Is this correct? Do I miss something? Regards, Michael [1] http://www.localhost.nu/java/tapestry5-acegi/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Failing to run my first Tapestry page
have you updated from the latest trunk ? or have you change anything in the original source of the tutorial ? 2008/8/11 Greg D <[EMAIL PROTECTED]> > > Hi, > I still have this problem :/ > I am the only one who tried the tutorial and got this error? > Thanks, > Greg > -- > View this message in context: > http://www.nabble.com/Failing-to-run-my-first-Tapestry-page-tp18872267p18922832.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- with regards Sven Homburg http://tapestry5-components.googlecode.com http://chenillekit.googlecode.com
Re: Failing to run my first Tapestry page
Hi, I still have this problem :/ I am the only one who tried the tutorial and got this error? Thanks, Greg -- View this message in context: http://www.nabble.com/Failing-to-run-my-first-Tapestry-page-tp18872267p18922832.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] How to handle DAOs?
thats right, one of the reasons to found a new project, is : split the components/services for tapestry5 applications from the rest of the project for a better separation for modules you need or not need. so you can use every module (excepted the tapestry module) for any kind of applications. that means, t5components is completely adept from chenillekit, and the development is stopped but will survive in chenillekit. 2008/8/11 9902468 <[EMAIL PROTECTED]> > > After quick source code peek it seems that old t5components/commons is the > tapestry part of chennillekit. > > Chenillekit adds stuff to t5c afaik. > > Is development going on in both projects? Or is chenillekit the way to go > now? > > -99 > > > Lutz Hühnken wrote: > > > > Hi Sven, > > > > this is the first time i hear of "chenillekit". So I'm wondering (and > > I'm sure others are, too) - what the relationship is between > > "chenillekit" and "t5components" ? Are those two names for the same > > project? > > > > Regards, > > > > Lutz > > > > > > On Sat, Aug 9, 2008 at 2:13 PM, Sven Homburg <[EMAIL PROTECTED]> > > wrote: > >> myself is using the chenillekit modules > >> for my own customer projects but the libraries > >> are poorly documented. > >> > >> for the future i suggest the using of chenillekit > >> http://code.google.com/p/chenillekit/ > >> > >> > >> > >> -- > >> with regards > >> Sven Homburg > >> http://tapestry5-components.googlecode.com > >> http://chenillekit.googlecode.com > >> > > > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > View this message in context: > http://www.nabble.com/-T5--How-to-handle-DAOs--tp18901398p18921242.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- with regards Sven Homburg http://tapestry5-components.googlecode.com http://chenillekit.googlecode.com
Re : T5: Palette and JWebUnit
Hi Michael, I'm in holidays so I won't have the time to fully answer you (should not stay too long on a computer ;)) but here are some tips: 1) Are you really talking about httpunit in your post? I hope you wanted to say HtmlUnit, because don't expect JavaScript support with HttpUnit. 2) Concerning Selenium, you have to start Selenium proxy before running your tests. You can either run it manually (you will have to download the jar and run in a console java -jar selenium-server-.jar or you can use the Maven plugin (http://mojo.codehaus.org/selenium-maven-plugin/) Regards, Julien - Message d'origine De : Michael Capper <[EMAIL PROTECTED]> À : users@tapestry.apache.org Envoyé le : Mardi, 5 Août 2008, 15h06mn 19s Objet : T5: Palette and JWebUnit Hi, finally i've been allowed to look into Autamated Testing, and chose JWebUnit with HttpUnit. Then after building some successful test for login and entering some data, i failed writing a working test against a beaneditform with a Tapestry Palette. Short form of the test: setWorkingForm("..."); selectOptionsByValues("palette:avail", "..."); clickButton("palette:select"); submit(); I don't get any errors from that itself, but after submit the bean was unchanged with respect to this palette. Problem seems to be those two select elements: I can select some of the "palette:avail"-select-entries, but after clicking "palette:select" or submitting they are not sent to the server, but i assume some javascript instead adds them as options to the "palette"-select. Thus i was not able to select these options in JWebUnit (list is empty), and could not set my bean as desired. Anybody tried this? Sorry if this is too much of a JWebUnit-Question to belong in this forum, i just though you guys know your way in Testing :) I'm hoping for the correct procedure to submit a Palette with JWebUnit, or maybe a workaround with which i can set the selected options manually even if the current select-options in the form does not actually include them. Thanks! Somewhat unrelated, i also tried to add jwebunit-selenium to my pom.xml in eclipse, and used the selenium IDE to generate some tests, which i wanted to run out of eclipse. but when i ran those test, i only got a java.lang.UnsupportedOperationException: Catch body broken: IOException ... Connection refused. When adding the dependency to jwebunit-selenium i also break my jwebunit-httpunit , getting the same exception there. Greetings from Karlsruhe, Michael -- View this message in context: http://www.nabble.com/T5%3A-Palette-and-JWebUnit-tp18830750p18830750.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ Envoyez avec Yahoo! Mail. Une boite mail plus intelligente http://mail.yahoo.fr
Re: [T5] How to handle DAOs?
After quick source code peek it seems that old t5components/commons is the tapestry part of chennillekit. Chenillekit adds stuff to t5c afaik. Is development going on in both projects? Or is chenillekit the way to go now? -99 Lutz Hühnken wrote: > > Hi Sven, > > this is the first time i hear of "chenillekit". So I'm wondering (and > I'm sure others are, too) - what the relationship is between > "chenillekit" and "t5components" ? Are those two names for the same > project? > > Regards, > > Lutz > > > On Sat, Aug 9, 2008 at 2:13 PM, Sven Homburg <[EMAIL PROTECTED]> > wrote: >> myself is using the chenillekit modules >> for my own customer projects but the libraries >> are poorly documented. >> >> for the future i suggest the using of chenillekit >> http://code.google.com/p/chenillekit/ >> >> >> >> -- >> with regards >> Sven Homburg >> http://tapestry5-components.googlecode.com >> http://chenillekit.googlecode.com >> > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/-T5--How-to-handle-DAOs--tp18901398p18921242.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Environmental services during action requests
enviromentals do not depend on render, it depends on you when you provide enviromental variable, when you will make enviromental available for your components. you can use any event besides setupRender Davor Hrg On Sun, Aug 10, 2008 at 4:59 PM, Markus Joschko <[EMAIL PROTECTED]>wrote: > Hi list, > is there a way to have an environmental service during an action request? > In the docs a tabmodel is mentioned which can be put into the > environment during setupRender. > However if an event happens in an encapsulated tab component and it > wants to make any sanity checks against the provided model > it will fall flat as setupRender is not called during action requests. > > Regards, > Markus > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >