Re: from tapestry5 quickstart to jumpstart?
I did got back and double checked and all the jar were added, including log4j-1.2.12.jar. Is there a specific expectation on where the openejb is supposed to be located at? mine is at C:\1jumpstart\jumpstart-4.5.2\openejb-3.1.1\openejb-3.1.1 Thanks, Faye Geoff Callender-2 wrote: > > On 30/01/2010, at 9:50 AM, faye alaska wrote: > >> >> Hi Geoff, >> Thanks for the reply! I am stuck at the very end of jumpstar -- >> everything >> worked very well till this point and technically, the instruction was >> still >> correct, maybe I am just so new to all this that I was not able to do any >> effective debugging... >> "If error, especially ClassNotFoundException for org.slf4j.Logger or >> org.slf4j.impl.StaticLoggerBinder, check the Arguments and classpath >> match >> those shown above." >> I kept checking and my arguments which I copied and pasted into the >> argument >> area, and the jar files added, and could not see where the problem is. >> and the following was my error message. >> Exception in thread "main" java.lang.NoClassDefFoundError: >> org/apache/log4j/Level > > Class Level is in openejb-3.1.1/lib/log4j-1.2.12.jar, so I suspect you > need to go back to step 8 and make sure your openejb User Library contains > that jar and every other jar. > > HTH, > > Geoff > >> at org.slf4j.LoggerFactory.(LoggerFactory.java:60) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at org.mortbay.log.Slf4jLog.(Slf4jLog.java:64) >> at org.mortbay.log.Slf4jLog.(Slf4jLog.java:37) >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> at java.lang.Class.newInstance0(Class.java:355) >> at java.lang.Class.newInstance(Class.java:308) >> at org.mortbay.log.Log.(Log.java:53) >> at org.mortbay.component.Container.add(Container.java:200) >> at org.mortbay.component.Container.update(Container.java:164) >> at org.mortbay.component.Container.update(Container.java:106) >> at org.mortbay.jetty.Server.setConnectors(Server.java:158) >> at org.mortbay.jetty.Server.addConnector(Server.java:132) >> at runjettyrun.Bootstrap.main(Bootstrap.java:76) >> Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level >> at java.net.URLClassLoader$1.run(URLClassLoader.java:200) >> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass(URLClassLoader.java:188) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:303) >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) >> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) >> ... 20 more >> >> Thanks again for helping. >> Faye >> >> >> Geoff Callender-2 wrote: >>> >>> Hi Faye, >>> >>> What problem are you having getting jumpstart to work? The installation >>> instructions have been tested by many, many people, but maybe there's >>> something we missed. >>> >>> Regards, >>> >>> Geoff >>> >>> On 29/01/2010, at 8:16 PM, faye alaska wrote: >>> Hello, I am new to tapestry5 and I followed http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, which was an awesome direction to get tapestry5 quickstart working. I also downloaded jumpstart, but unfortunately could not successfully get it to work. The examples in jumpstart are very cool, now I am wondering if there is a tutorial or some information on how to start from the tapestry quickstart to get openejb, hibernate, with hsqldb set up to try some of the examples in the jumpstart. -- that would certainly help me a lot to get going using tapestry5 for my project. Thanks a lot. I am really excited about learning/using tapestry... Thanks a bunch! -- View this message in context: http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >>> - >>> To unsubscribe, e-mail: users-unsubscr...@tapestry
Re: from tapestry5 quickstart to jumpstart?
On 30/01/2010, at 9:50 AM, faye alaska wrote: > > Hi Geoff, > Thanks for the reply! I am stuck at the very end of jumpstar -- everything > worked very well till this point and technically, the instruction was still > correct, maybe I am just so new to all this that I was not able to do any > effective debugging... > "If error, especially ClassNotFoundException for org.slf4j.Logger or > org.slf4j.impl.StaticLoggerBinder, check the Arguments and classpath match > those shown above." > I kept checking and my arguments which I copied and pasted into the argument > area, and the jar files added, and could not see where the problem is. > and the following was my error message. > Exception in thread "main" java.lang.NoClassDefFoundError: > org/apache/log4j/Level Class Level is in openejb-3.1.1/lib/log4j-1.2.12.jar, so I suspect you need to go back to step 8 and make sure your openejb User Library contains that jar and every other jar. HTH, Geoff > at org.slf4j.LoggerFactory.(LoggerFactory.java:60) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.mortbay.log.Slf4jLog.(Slf4jLog.java:64) > at org.mortbay.log.Slf4jLog.(Slf4jLog.java:37) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at java.lang.Class.newInstance0(Class.java:355) > at java.lang.Class.newInstance(Class.java:308) > at org.mortbay.log.Log.(Log.java:53) > at org.mortbay.component.Container.add(Container.java:200) > at org.mortbay.component.Container.update(Container.java:164) > at org.mortbay.component.Container.update(Container.java:106) > at org.mortbay.jetty.Server.setConnectors(Server.java:158) > at org.mortbay.jetty.Server.addConnector(Server.java:132) > at runjettyrun.Bootstrap.main(Bootstrap.java:76) > Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > at java.lang.ClassLoader.loadClass(ClassLoader.java:303) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) > at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) > ... 20 more > > Thanks again for helping. > Faye > > > Geoff Callender-2 wrote: >> >> Hi Faye, >> >> What problem are you having getting jumpstart to work? The installation >> instructions have been tested by many, many people, but maybe there's >> something we missed. >> >> Regards, >> >> Geoff >> >> On 29/01/2010, at 8:16 PM, faye alaska wrote: >> >>> >>> Hello, I am new to tapestry5 and I followed >>> http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, >>> which was an awesome direction to get tapestry5 quickstart working. I >>> also >>> downloaded jumpstart, but unfortunately could not successfully get it to >>> work. The examples in jumpstart are very cool, now I am wondering if >>> there >>> is a tutorial or some information on how to start from the tapestry >>> quickstart to get openejb, hibernate, with hsqldb set up to try some of >>> the >>> examples in the jumpstart. -- that would certainly help me a lot to get >>> going using tapestry5 for my project. >>> Thanks a lot. I am really excited about learning/using tapestry... >>> Thanks a bunch! >>> -- >>> View this message in context: >>> http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> - >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> > > -- > View this message in context: > http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27379362.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-m
Re: from tapestry5 quickstart to jumpstart?
Hi Geoff, Thanks for the reply! I am stuck at the very end of jumpstar -- everything worked very well till this point and technically, the instruction was still correct, maybe I am just so new to all this that I was not able to do any effective debugging... "If error, especially ClassNotFoundException for org.slf4j.Logger or org.slf4j.impl.StaticLoggerBinder, check the Arguments and classpath match those shown above." I kept checking and my arguments which I copied and pasted into the argument area, and the jar files added, and could not see where the problem is. and the following was my error message. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level at org.slf4j.LoggerFactory.(LoggerFactory.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.mortbay.log.Slf4jLog.(Slf4jLog.java:64) at org.mortbay.log.Slf4jLog.(Slf4jLog.java:37) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.mortbay.log.Log.(Log.java:53) at org.mortbay.component.Container.add(Container.java:200) at org.mortbay.component.Container.update(Container.java:164) at org.mortbay.component.Container.update(Container.java:106) at org.mortbay.jetty.Server.setConnectors(Server.java:158) at org.mortbay.jetty.Server.addConnector(Server.java:132) at runjettyrun.Bootstrap.main(Bootstrap.java:76) Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:303) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) ... 20 more Thanks again for helping. Faye Geoff Callender-2 wrote: > > Hi Faye, > > What problem are you having getting jumpstart to work? The installation > instructions have been tested by many, many people, but maybe there's > something we missed. > > Regards, > > Geoff > > On 29/01/2010, at 8:16 PM, faye alaska wrote: > >> >> Hello, I am new to tapestry5 and I followed >> http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, >> which was an awesome direction to get tapestry5 quickstart working. I >> also >> downloaded jumpstart, but unfortunately could not successfully get it to >> work. The examples in jumpstart are very cool, now I am wondering if >> there >> is a tutorial or some information on how to start from the tapestry >> quickstart to get openejb, hibernate, with hsqldb set up to try some of >> the >> examples in the jumpstart. -- that would certainly help me a lot to get >> going using tapestry5 for my project. >> Thanks a lot. I am really excited about learning/using tapestry... >> Thanks a bunch! >> -- >> View this message in context: >> http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > > -- View this message in context: http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27379362.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Easy Way to create a select model?
Hi Andy, I find the easiest way to populate a select list is just to pass it a Map of values. Something like the following: public Map getMonthsModel() { Map model = new LinkedHashMap(); model.put(1, "Jan"); model.put(2, "Feb"); model.put(3, "Mar"); return model; } Andrew Andy Pahne-7 wrote: > > > I feel a little dumb, because for years I have been using Tapestry. > > Is there an _easy_ way og creating a SelectModel like this one (not so > uncommon one): > > valuelabel > - > 1 Jan > 2 Feb > ... > > > I had a look at the documentation. But I cannot believe I have to deal > with SelectModel, OptionModel, OptionGroupModel and whatelse for this > simple usecase. > > I also had a look at the Wiki. I found four pages about selects. I > cannot believe that I have to use such bloat for my usecase. > > I surely must be missing something, or not? > > Andy > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > > -- View this message in context: http://old.nabble.com/Easy-Way-to-create-a-select-model--tp27356514p27379053.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: from tapestry5 quickstart to jumpstart?
Hi Faye, What problem are you having getting jumpstart to work? The installation instructions have been tested by many, many people, but maybe there's something we missed. Regards, Geoff On 29/01/2010, at 8:16 PM, faye alaska wrote: > > Hello, I am new to tapestry5 and I followed > http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, > which was an awesome direction to get tapestry5 quickstart working. I also > downloaded jumpstart, but unfortunately could not successfully get it to > work. The examples in jumpstart are very cool, now I am wondering if there > is a tutorial or some information on how to start from the tapestry > quickstart to get openejb, hibernate, with hsqldb set up to try some of the > examples in the jumpstart. -- that would certainly help me a lot to get > going using tapestry5 for my project. > Thanks a lot. I am really excited about learning/using tapestry... > Thanks a bunch! > -- > View this message in context: > http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: from tapestry5 quickstart to jumpstart?
You should not be concerned about the missing reference. We moved to H2 database (H2 is the next version from hsqldb and really really good, see http://www.h2database.com/html/main.html) sometime ago, but missed one obsolete hsqldb reference in the pom. Kalle On Fri, Jan 29, 2010 at 1:05 PM, faye alaska wrote: > > Thank you so much for your help, Kalle, I am getting some warning on > "${hsqldb.version} i > s not a valid reference.". should I be concerned with it? My desire was to > see how we can get from the tapestry quickstart to the jumpstart so that I > could understand how openejb, hibernate and hsqldb all fit together using > Maven, with this knowledge, I found it so hard for me to follow the example > in jumpstart. > will the all the example codes in jumpstart work in a tynamo project? > Thanks again. > > [INFO] No archetype defined. Using maven-archetype-quickstart > (org.apache.maven. > archetypes:maven-archetype-quickstart:1.0) > Choose archetype: > 1: http://tynamo.org -> tynamo-archetype (Model-driven web framework based > on Ta > pestry 5) > Choose a number: (1): 1 > Downloading: > http://tynamo.org/org/tynamo/tynamo-archetype/0.0.1/tynamo-archetyp > e-0.0.1.jar > [INFO] Unable to find resource 'org.tynamo:tynamo-archetype:jar:0.0.1' in > reposi > tory tynamo-archetype-repo (http://tynamo.org) > Downloading: > http://repo1.maven.org/maven2/org/tynamo/tynamo-archetype/0.0.1/tyn > amo-archetype-0.0.1.jar > > [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = > '01f6e9c9f9 > c21684bd9becc095b7d206e0954085'; remote = > '932ac16cd96b2a2ecd015ea58f209e0ca5c98 > cf8' - RETRYING > Downloading: > http://repo1.maven.org/maven2/org/tynamo/tynamo-archetype/0.0.1/tyn > amo-archetype-0.0.1.jar > > [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = > '01f6e9c9f9 > c21684bd9becc095b7d206e0954085'; remote = > '932ac16cd96b2a2ecd015ea58f209e0ca5c98 > cf8' - IGNORING > Define value for groupId: : org.tynamo > Define value for artifactId: : quickstart > Define value for version: 1.0-SNAPSHOT: : 1.0-SNAPSHOT > Define value for package: org.tynamo: : org.tynamo > Confirm properties configuration: > groupId: org.tynamo > artifactId: quickstart > version: 1.0-SNAPSHOT > package: org.tynamo > Y: : y > [WARNING] org.apache.velocity.runtime.exception.ReferenceException: > reference : > template = archetype-resources/pom.xml [line 28,column 42] : > ${hsqldb.version} i > s not a valid reference. > [INFO] > > [INFO] BUILD SUCCESSFUL > [INFO] > > [INFO] Total time: 13 minutes 52 seconds > [INFO] Finished at: Fri Jan 29 11:54:03 AKST 2010 > [INFO] Final Memory: 8M/254M > [INFO] > > > Kalle Korhonen-2 wrote: >> >> Not a jumpstart, but you might want to try out Tynamo's archetype, see >> http://tynamo.org/Quick+start. It's got Hibernate, H2 etc. all set up >> and ready to go after you run it. >> >> Kalle >> >> >> On Fri, Jan 29, 2010 at 1:16 AM, faye alaska >> wrote: >>> >>> Hello, I am new to tapestry5 and I followed >>> http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, >>> which was an awesome direction to get tapestry5 quickstart working. I >>> also >>> downloaded jumpstart, but unfortunately could not successfully get it to >>> work. The examples in jumpstart are very cool, now I am wondering if >>> there >>> is a tutorial or some information on how to start from the tapestry >>> quickstart to get openejb, hibernate, with hsqldb set up to try some of >>> the >>> examples in the jumpstart. -- that would certainly help me a lot to get >>> going using tapestry5 for my project. >>> Thanks a lot. I am really excited about learning/using tapestry... >>> Thanks a bunch! >>> -- >>> View this message in context: >>> http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> - >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> > > -- > View this message in context: > http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27378280.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -
Re: from tapestry5 quickstart to jumpstart?
Thank you so much for your help, Kalle, I am getting some warning on "${hsqldb.version} i s not a valid reference.". should I be concerned with it? My desire was to see how we can get from the tapestry quickstart to the jumpstart so that I could understand how openejb, hibernate and hsqldb all fit together using Maven, with this knowledge, I found it so hard for me to follow the example in jumpstart. will the all the example codes in jumpstart work in a tynamo project? Thanks again. [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven. archetypes:maven-archetype-quickstart:1.0) Choose archetype: 1: http://tynamo.org -> tynamo-archetype (Model-driven web framework based on Ta pestry 5) Choose a number: (1): 1 Downloading: http://tynamo.org/org/tynamo/tynamo-archetype/0.0.1/tynamo-archetyp e-0.0.1.jar [INFO] Unable to find resource 'org.tynamo:tynamo-archetype:jar:0.0.1' in reposi tory tynamo-archetype-repo (http://tynamo.org) Downloading: http://repo1.maven.org/maven2/org/tynamo/tynamo-archetype/0.0.1/tyn amo-archetype-0.0.1.jar [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '01f6e9c9f9 c21684bd9becc095b7d206e0954085'; remote = '932ac16cd96b2a2ecd015ea58f209e0ca5c98 cf8' - RETRYING Downloading: http://repo1.maven.org/maven2/org/tynamo/tynamo-archetype/0.0.1/tyn amo-archetype-0.0.1.jar [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '01f6e9c9f9 c21684bd9becc095b7d206e0954085'; remote = '932ac16cd96b2a2ecd015ea58f209e0ca5c98 cf8' - IGNORING Define value for groupId: : org.tynamo Define value for artifactId: : quickstart Define value for version: 1.0-SNAPSHOT: : 1.0-SNAPSHOT Define value for package: org.tynamo: : org.tynamo Confirm properties configuration: groupId: org.tynamo artifactId: quickstart version: 1.0-SNAPSHOT package: org.tynamo Y: : y [WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference : template = archetype-resources/pom.xml [line 28,column 42] : ${hsqldb.version} i s not a valid reference. [INFO] [INFO] BUILD SUCCESSFUL [INFO] [INFO] Total time: 13 minutes 52 seconds [INFO] Finished at: Fri Jan 29 11:54:03 AKST 2010 [INFO] Final Memory: 8M/254M [INFO] Kalle Korhonen-2 wrote: > > Not a jumpstart, but you might want to try out Tynamo's archetype, see > http://tynamo.org/Quick+start. It's got Hibernate, H2 etc. all set up > and ready to go after you run it. > > Kalle > > > On Fri, Jan 29, 2010 at 1:16 AM, faye alaska > wrote: >> >> Hello, I am new to tapestry5 and I followed >> http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, >> which was an awesome direction to get tapestry5 quickstart working. I >> also >> downloaded jumpstart, but unfortunately could not successfully get it to >> work. The examples in jumpstart are very cool, now I am wondering if >> there >> is a tutorial or some information on how to start from the tapestry >> quickstart to get openejb, hibernate, with hsqldb set up to try some of >> the >> examples in the jumpstart. -- that would certainly help me a lot to get >> going using tapestry5 for my project. >> Thanks a lot. I am really excited about learning/using tapestry... >> Thanks a bunch! >> -- >> View this message in context: >> http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > > -- View this message in context: http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27378280.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: TestNG & Injecting Testify services into pages
Going from memory when I debugged earlier this morning : I definitely saw and traced the objects marked w/ ForComponents going into the store. However, when I was rendering the page, I don't think there were any calls to get them out and inject them into the component. I definitely saw the code inspecting the test class for @Inject annotations to inject services into the test case. I'll do another debug run again tonight. The test case that I have is pretty straightforward, so I should be able to zip up an example. Regards, Alex K On Fri, Jan 29, 2010 at 1:48 PM, Paul Field wrote: > Odd - it looks like the @ForComponents objects should be created and > collected (because setup/doSetUp are called); it looks like the > setup/teardown methods are called in the right way (from the call trace in > your other email). I'm having trouble seeing what's wrong. > > At this point I would probably reach for a debugger... If you can simplify > the project to something you wouldn't mind zipping up and sending to me > I'll be happy to take a look. > > > If you want to have a go yourself, then put breakpoints on the methods of > SimpleObjectsForComponentStore - which is the service that stores the > objects that you specify with @ForComponents so you can see objects being > stored and requested. Also put a breakpoint in ThreadLocalPerTestDataStore > #cleanup() so you can see when the test ends and the data is dropped from > the SimpleObjectsForComponentsStore. > > The sequence should be: > Data collected from @ForComponents - calls to > SimpleObjectsForComponentStore#put() > Page rendering, @Inject fields accessed - calls to > SimpleObjectsForComponentStore#get() > Test complete, tearDown() called - call to ThreadLocalPerTestDataStore > #cleanup() > > As well as checking the sequence is correct, you can see what is in the > store when get is being called (and what is being requested). > > - Paul > > > akochnev wrote on 29/01/2010 13:33:00: > > > > > Paul, > >thanks for the quick response. Now, down the checklist : > > > > 1. I am extending from the testng version of the class: > > package com.troymaxventures.zadachite.pagetestsupport; > > > > > > > > import com.formos.tapestry.testify.core.TapestryTester; > > import com.formos.tapestry.testify.testng.TapestryTest; > > > > public abstract class AbstractZdTapTest extends TapestryTest { > > private static final TapestryTester SHARED_TESTER = new > > TapestryTester("foo", ZdTestAppModule.class); > > > > public AbstractZdTapTest() { > > super(SHARED_TESTER); > > } > > } > > > > 2. doSetUp() is indeed being called, I added a breakpoint and a println > : > > > >@Override > >protected void doSetUp() { > >userRepo = EasyMock.createMock(UserRepository.class); > >System.out.println("The doSetUp() is called by TestNG"); > >} > > > > The doSetUp() is called by TestNG > > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.051 > sec > > <<< FAILURE! > > > > 3. The testng config file : > > I run the test from Maven, this is the suite file that gets generated : > > http://testng.org/testng-1.0.dtd";> > > > name="Failed suite [Command line suite]" junit="false" > annotations="JDK"> > >annotations="JDK"> > > > >name="com.troymaxventures.zadachite.pagetests.StupidPageTest"> > > > > > > > > > > > > > > > > > > > > > > > > > > 4. I added an extra test where I explicitly use the pageTester to try to > > inject the dependencies into my page. When I specify a totally bogus > package > > name ( so that Testify doesn't pick up the AppModule from my app), the > test > > fails w/ an error that it can't find my page (understandable, as I had > the > > bogus package name, so it can't find the page) when I render the page > using > > the tester; however, when I try to inject the dependencies directly into > the > > object instance, it fails that there is no instance of UserRepository . > When > > I include the full package name (so that testify picks up the > AppModule), > > the injectInto populates the service from the AppModule and not with the > > implementation that I provide in the test. When I use the > > tester.renderPage("stupid") and debug the page, I see nulls set on all > the > > services (e.g. in my example, userRepo is null), and I also see non-null > > values in some mangled names in the class (e.g. something like > > _$nonTestUserRepo) > > > > > > > > --- > > Test set: TestSuite > > > > --- > > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.052 > sec > > <<< FAILURE! > > > testElementIsOnPage(com.troymaxventures.zadachite.pagetests.StupidPageTest) > > > Time elapsed: 0.966 sec <<< FAILURE! > > java.lang.RuntimeException: Request was not
Re: TestNG & Injecting Testify services into pages
Odd - it looks like the @ForComponents objects should be created and collected (because setup/doSetUp are called); it looks like the setup/teardown methods are called in the right way (from the call trace in your other email). I'm having trouble seeing what's wrong. At this point I would probably reach for a debugger... If you can simplify the project to something you wouldn't mind zipping up and sending to me I'll be happy to take a look. If you want to have a go yourself, then put breakpoints on the methods of SimpleObjectsForComponentStore - which is the service that stores the objects that you specify with @ForComponents so you can see objects being stored and requested. Also put a breakpoint in ThreadLocalPerTestDataStore #cleanup() so you can see when the test ends and the data is dropped from the SimpleObjectsForComponentsStore. The sequence should be: Data collected from @ForComponents - calls to SimpleObjectsForComponentStore#put() Page rendering, @Inject fields accessed - calls to SimpleObjectsForComponentStore#get() Test complete, tearDown() called - call to ThreadLocalPerTestDataStore #cleanup() As well as checking the sequence is correct, you can see what is in the store when get is being called (and what is being requested). - Paul akochnev wrote on 29/01/2010 13:33:00: > > Paul, >thanks for the quick response. Now, down the checklist : > > 1. I am extending from the testng version of the class: > package com.troymaxventures.zadachite.pagetestsupport; > > > > import com.formos.tapestry.testify.core.TapestryTester; > import com.formos.tapestry.testify.testng.TapestryTest; > > public abstract class AbstractZdTapTest extends TapestryTest { > private static final TapestryTester SHARED_TESTER = new > TapestryTester("foo", ZdTestAppModule.class); > > public AbstractZdTapTest() { > super(SHARED_TESTER); > } > } > > 2. doSetUp() is indeed being called, I added a breakpoint and a println : > >@Override >protected void doSetUp() { >userRepo = EasyMock.createMock(UserRepository.class); >System.out.println("The doSetUp() is called by TestNG"); >} > > The doSetUp() is called by TestNG > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.051 sec > <<< FAILURE! > > 3. The testng config file : > I run the test from Maven, this is the suite file that gets generated : > http://testng.org/testng-1.0.dtd";> > name="Failed suite [Command line suite]" junit="false" annotations="JDK"> > > > > > > > > > > > > > > > > 4. I added an extra test where I explicitly use the pageTester to try to > inject the dependencies into my page. When I specify a totally bogus package > name ( so that Testify doesn't pick up the AppModule from my app), the test > fails w/ an error that it can't find my page (understandable, as I had the > bogus package name, so it can't find the page) when I render the page using > the tester; however, when I try to inject the dependencies directly into the > object instance, it fails that there is no instance of UserRepository . When > I include the full package name (so that testify picks up the AppModule), > the injectInto populates the service from the AppModule and not with the > implementation that I provide in the test. When I use the > tester.renderPage("stupid") and debug the page, I see nulls set on all the > services (e.g. in my example, userRepo is null), and I also see non-null > values in some mangled names in the class (e.g. something like > _$nonTestUserRepo) > > > --- > Test set: TestSuite > --- > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.052 sec > <<< FAILURE! > testElementIsOnPage(com.troymaxventures.zadachite.pagetests.StupidPageTest) > Time elapsed: 0.966 sec <<< FAILURE! > java.lang.RuntimeException: Request was not handled: 'stupid' may not be a > valid page name. > at > org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:177) > at > com.troymaxventures.zadachite.pagetests.StupidPageTest. > testElementIsOnPage(StupidPageTest.java:40) > > testStupidPageUnitTest(com.troymaxventures.zadachite.pagetests. > StupidPageTest) > Time elapsed: 0.01 sec <<< FAILURE! > java.lang.RuntimeException: No service implements the interface > com.troymaxventures.zadachite.services.UserRepository. > at > org.apache.tapestry5.ioc.internal.RegistryImpl. > getService(RegistryImpl.java:575) > at > org.apache.tapestry5.ioc.internal.RegistryWrapper. > getService(RegistryWrapper.java:58) > at > org.apache.tapestry5.test.PageTester.getService(PageTester.java:154) > at > com.formos.tapestry.testify.core.TapestryTester$FieldInjector. > process(
Re: Starting from a maven archetype error
I am not sure if this helps, but I followed the instructions in http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29 and got quickstart to work quickly. matias.blasi wrote: > > Hi, I'm trying to start a new tapestry project and I'm getting the > following error: > > mat...@jo-lie:~/workspace/newscentral $ mvn archetype:generate > -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository > > ... > [INFO] Building Maven Default Project > [INFO]task-segment: [archetype:generate] (aggregator-style) > [INFO] > > [INFO] Preparing archetype:generate > ... > [INFO] [archetype:generate] > [INFO] Generating project in Interactive mode > [INFO] No archetype defined. Using maven-archetype-quickstart > (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) > Choose archetype: > 1: http://tapestry.formos.com/maven-snapshot-repository -> quickstart > (Tapestry 5.2.0-SNAPSHOT Quickstart Project) > Choose a number: (1): 1 > [INFO] snapshot org.apache.tapestry:quickstart:5.2.0-SNAPSHOT: checking > for updates from quickstart-repo > [WARNING] repository metadata for: 'snapshot > org.apache.tapestry:quickstart:5.2.0-SNAPSHOT' could not be retrieved from > repository: quickstart-repo due to an error: GET request of: > org/apache/tapestry/quickstart/5.2.0-SNAPSHOT/maven-metadata.xml from > quickstart-repo failed > [INFO] Repository 'quickstart-repo' will be blacklisted > [INFO] > > [ERROR] BUILD FAILURE > [INFO] > > .. > [INFO] > > mat...@jo-lie:~/workspace/newscentral $ > > > Could the maven-metadata.xml file be corrupted? > > Regards, > Matías > -- View this message in context: http://old.nabble.com/Starting-from-a-maven-archetype-error-tp2716p27375832.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Returning a FieldValidator to a TextField
On Fri, 29 Jan 2010 10:33:10 -0200, Nuno Ferreira wrote: Hello all, Hi! My idea was to use the already existing FieldValidators like required, regexp, min, etc... Inject FieldValidatorSource and use its FieldValidator createValidators(Field field, String specification) method to generate a FieldValidator. Then create a FieldValidator getValidator() method using createValidators() and add t:validate="prop:validator" to your TextField. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, software architect and developer, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: from tapestry5 quickstart to jumpstart?
Not a jumpstart, but you might want to try out Tynamo's archetype, see http://tynamo.org/Quick+start. It's got Hibernate, H2 etc. all set up and ready to go after you run it. Kalle On Fri, Jan 29, 2010 at 1:16 AM, faye alaska wrote: > > Hello, I am new to tapestry5 and I followed > http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, > which was an awesome direction to get tapestry5 quickstart working. I also > downloaded jumpstart, but unfortunately could not successfully get it to > work. The examples in jumpstart are very cool, now I am wondering if there > is a tutorial or some information on how to start from the tapestry > quickstart to get openejb, hibernate, with hsqldb set up to try some of the > examples in the jumpstart. -- that would certainly help me a lot to get > going using tapestry5 for my project. > Thanks a lot. I am really excited about learning/using tapestry... > Thanks a bunch! > -- > View this message in context: > http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: using back button with clientValidation from
Hi Sven, thanks for the sample I find editForm.clearErrors() quite useful. >@Component(parameters = {"value=message:button.value.cancel"})> >private Submit cancelButton;> I have tried the following: @Component(parameters = { "type=message:button" }) private Submit sbtBack; (button was defined as button=button in the property file) unfortunately the input rendered with type="submit" it is not sufficient when a form has param clientValidation="true" and fileds with validate="required" the result of @Component(type = "button") was exception Izolda ps: my Tapestry version is 5.1.0.5 - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: using back button with clientValidation from
@Component(parameters = {"value=message:button.value.cancel"}) private Submit cancelButton; private boolean isCancelButtonPressed; @OnEvent(component = "cancelButton", value = EventConstants.SELECTED) void onSelectedFromCancelButton() { isCancelButtonPressed = true; editForm.clearErrors(); } @CommitAfter @OnEvent(value = EventConstants.SUCCESS) Class onSuccess() { if (!isCancelButtonPressed) shipmentOrderDAO.doSave(entity); return BrowseOrder.class; } with regards Sven Homburg Founder of the Chenille Kit Project http://chenillekit.codehaus.org 2010/1/29 Kiss Izolda > Hi, > > I have forms with param clientValidation="true". I need two buttons: one > submit and one back. As I havn't found any better solution I have iplemented > the back button as org.apache.tapestry5.corelib.components.Sumbit (Java code > has to be run before returning to the previous page). The problem is when > the back button is peressed fields with param validate="required" can't be > empty. > I migth need some component like "ActionButton" which functions as an > action link and is rendered as input type="button". (I guess I could trick > simulating function of an action link by adding an onlick param to the > button, but hope there does a proper solution exist.) > > thanks in advance > > Izolda > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
using back button with clientValidation from
Hi, I have forms with param clientValidation="true". I need two buttons: one submit and one back. As I havn't found any better solution I have iplemented the back button as org.apache.tapestry5.corelib.components.Sumbit (Java code has to be run before returning to the previous page). The problem is when the back button is peressed fields with param validate="required" can't be empty. I migth need some component like "ActionButton" which functions as an action link and is rendered as input type="button". (I guess I could trick simulating function of an action link by adding an onlick param to the button, but hope there does a proper solution exist.) thanks in advance Izolda - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: TestNG & Injecting Testify services into pages
And this is the chronological listing of methods: http://old.nabble.com/file/p27372140/methods.html methods.html Below is the listing of methods in HTML, just in case the file uploaded to nabble doesn't work --- Methods run, sorted chronologically>> means before, << means afterCommand line suite(Hover the method name to see the test class name) TimeDelta (ms)SuiteconfigurationTestconfigurationClassconfigurationGroupsconfigurationMethodconfigurationTestmethodThreadInstances 10/01/29 07:56:09 0 >>processInjectAnnotation m...@9633996 10/01/29 07:56:10 1091 >>setUp m...@9633996 10/01/29 07:56:09 123 testElementIsOnPage m...@9633996 10/01/29 07:56:10 1095 <>setUp m...@9633996 10/01/29 07:56:10 1092 testStupidPageUnitTest m...@9633996 10/01/29 07:56:10 1095 < > Paul, >thanks for the quick response. Now, down the checklist : > > 1. I am extending from the testng version of the class: > package com.troymaxventures.zadachite.pagetestsupport; > > > > import com.formos.tapestry.testify.core.TapestryTester; > import com.formos.tapestry.testify.testng.TapestryTest; > > public abstract class AbstractZdTapTest extends TapestryTest { > private static final TapestryTester SHARED_TESTER = new > TapestryTester("foo", ZdTestAppModule.class); > > public AbstractZdTapTest() { > super(SHARED_TESTER); > } > } > > 2. doSetUp() is indeed being called, I added a breakpoint and a println : > >@Override >protected void doSetUp() { >userRepo = EasyMock.createMock(UserRepository.class); >System.out.println("The doSetUp() is called by TestNG"); >} > > The doSetUp() is called by TestNG > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.051 sec > <<< FAILURE! > > 3. The testng config file : > I run the test from Maven, this is the suite file that gets generated : > http://testng.org/testng-1.0.dtd";> > name="Failed suite [Command line suite]" junit="false" annotations="JDK"> > > >name="com.troymaxventures.zadachite.pagetests.StupidPageTest"> > > > > > > > > > > > > > 4. I added an extra test where I explicitly use the pageTester to try to > inject the dependencies into my page. When I specify a totally bogus > package name ( so that Testify doesn't pick up the AppModule from my app), > the test fails w/ an error that it can't find my page (understandable, as > I had the bogus package name, so it can't find the page) when I render the > page using the tester; however, when I try to inject the dependencies > directly into the object instance, it fails that there is no instance of > UserRepository . When I include the full package name (so that testify > picks up the AppModule), the injectInto populates the service from the > AppModule and not with the implementation that I provide in the test. When > I use the tester.renderPage("stupid") and debug the page, I see nulls set > on all the services (e.g. in my example, userRepo is null), and I also see > non-null values in some mangled names in the class (e.g. something like > _$nonTestUserRepo) > > > --- > Test set: TestSuite > --- > Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.052 sec > <<< FAILURE! > testElementIsOnPage(com.troymaxventures.zadachite.pagetests.StupidPageTest) > Time elapsed: 0.966 sec <<< FAILURE! > java.lang.RuntimeException: Request was not handled: 'stupid' may not be a > valid page name. > at > org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:177) > at > com.troymaxventures.zadachite.pagetests.StupidPageTest.testElementIsOnPage(StupidPageTest.java:40) > > testStupidPageUnitTest(com.troymaxventures.zadachite.pagetests.StupidPageTest) > > Time elapsed: 0.01 sec <<< FAILURE! > java.lang.RuntimeException: No service implements the interface > com.troymaxventures.zadachite.services.UserRepository. > at > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:575) > at > org.apache.tapestry5.ioc.internal.RegistryWrapper.getService(RegistryWrapper.java:58) > at > org.apache.tapestry5.test.PageTester.getService(PageTester.java:154) > at > com.formos.tapestry.testify.core.TapestryTester$FieldInjector.process(TapestryTester.java:125) > at > com.formos.tapestry.testify.core.TapestryTester.processField(TapestryTester.java:106) > at > com.formos.tapestry.testify.core.TapestryTester.processFieldsAnnotatedWith(TapestryTester.java:96) > at > com.formos.tapestry.testify.core.TapestryTester.inj
Re: TestNG & Injecting Testify services into pages
Paul, thanks for the quick response. Now, down the checklist : 1. I am extending from the testng version of the class: package com.troymaxventures.zadachite.pagetestsupport; import com.formos.tapestry.testify.core.TapestryTester; import com.formos.tapestry.testify.testng.TapestryTest; public abstract class AbstractZdTapTest extends TapestryTest { private static final TapestryTester SHARED_TESTER = new TapestryTester("foo", ZdTestAppModule.class); public AbstractZdTapTest() { super(SHARED_TESTER); } } 2. doSetUp() is indeed being called, I added a breakpoint and a println : @Override protected void doSetUp() { userRepo = EasyMock.createMock(UserRepository.class); System.out.println("The doSetUp() is called by TestNG"); } The doSetUp() is called by TestNG Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.051 sec <<< FAILURE! 3. The testng config file : I run the test from Maven, this is the suite file that gets generated : http://testng.org/testng-1.0.dtd";> 4. I added an extra test where I explicitly use the pageTester to try to inject the dependencies into my page. When I specify a totally bogus package name ( so that Testify doesn't pick up the AppModule from my app), the test fails w/ an error that it can't find my page (understandable, as I had the bogus package name, so it can't find the page) when I render the page using the tester; however, when I try to inject the dependencies directly into the object instance, it fails that there is no instance of UserRepository . When I include the full package name (so that testify picks up the AppModule), the injectInto populates the service from the AppModule and not with the implementation that I provide in the test. When I use the tester.renderPage("stupid") and debug the page, I see nulls set on all the services (e.g. in my example, userRepo is null), and I also see non-null values in some mangled names in the class (e.g. something like _$nonTestUserRepo) --- Test set: TestSuite --- Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 5.052 sec <<< FAILURE! testElementIsOnPage(com.troymaxventures.zadachite.pagetests.StupidPageTest) Time elapsed: 0.966 sec <<< FAILURE! java.lang.RuntimeException: Request was not handled: 'stupid' may not be a valid page name. at org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:177) at com.troymaxventures.zadachite.pagetests.StupidPageTest.testElementIsOnPage(StupidPageTest.java:40) testStupidPageUnitTest(com.troymaxventures.zadachite.pagetests.StupidPageTest) Time elapsed: 0.01 sec <<< FAILURE! java.lang.RuntimeException: No service implements the interface com.troymaxventures.zadachite.services.UserRepository. at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:575) at org.apache.tapestry5.ioc.internal.RegistryWrapper.getService(RegistryWrapper.java:58) at org.apache.tapestry5.test.PageTester.getService(PageTester.java:154) at com.formos.tapestry.testify.core.TapestryTester$FieldInjector.process(TapestryTester.java:125) at com.formos.tapestry.testify.core.TapestryTester.processField(TapestryTester.java:106) at com.formos.tapestry.testify.core.TapestryTester.processFieldsAnnotatedWith(TapestryTester.java:96) at com.formos.tapestry.testify.core.TapestryTester.injectInto(TapestryTester.java:74) at com.troymaxventures.zadachite.pagetests.StupidPageTest.testStupidPageUnitTest(StupidPageTest.java:53) The superclass w/ a bogus package name: import com.formos.tapestry.testify.core.TapestryTester; import com.formos.tapestry.testify.testng.TapestryTest; public abstract class AbstractZdTapTest extends TapestryTest { private static final TapestryTester SHARED_TESTER = new TapestryTester("foo", ZdTestAppModule.class); public AbstractZdTapTest() { super(SHARED_TESTER); } } import com.formos.tapestry.testify.core.ForComponents; import com.troymaxventures.zadachite.model.EmailAddress; import com.troymaxventures.zadachite.model.UserRegistration; import com.troymaxventures.zadachite.model.ZdUser; import com.troymaxventures.zadachite.pages.Stupid; import com.troymaxventures.zadachite.pagetestsupport.AbstractZdTapTest; import com.troymaxventures.zadachite.services.UserRepository; import org.apache.tapestry5.dom.Document; import org.easymock.EasyMock; import org.testng.Assert; import org.testng.annotations.Test; import static org.easymock.EasyMock.*; /** * * @author polrtex */ public class StupidPageTest extends AbstractZdTapTest { @ForComponents UserRepository userRepo; @Override protected void doSetUp() { userRepo = EasyMock.c
Re: About T5 integration modules
Hi, For the one who are interested in, I have written a first article on how we have secured Tapestry Pages in wooki with Spring Security : http://spreadthesource.com/2010/01/securing-tapestry-5-pages-with-spring-security-2-x-part-i/ Best Regards, Christophe Cordenier. Developper of Wooki @wookicentral.com 2009/12/30 Newham, Cameron > > Interesting. > > I'd hardly call myself even an advanced-intermediate Tapestry user (some > of the stuff you guys talk about is way over my head!) but really, is it > that difficult to create a Dispatcher and custom page annotations?! > > I included simple security with roles very early on in my webapp by > going the page annotation route because it was a) understandable and b) > simple to implement by following the examples I'd seen. I had even less > of an understanding of Tapestry than I do now. > > I found it very easy to understand and code, and it works so well. I > shudder to think how long it would have taken ploughing through > documents on security solutions, like Spring Security, when all I wanted > was half a dozen roles and some way to mark my pages as general viewing > or requiring login under a certain role. > > As I've said all along, I think the only thing lacking big time for > Tapestry is clear, easy to understand documentation with good simple > examples of each feature. That said - I had no troubles with the above > security stuff (and I didn't even have to look at Tapestry source code > ;-) > > Rather than providing large cumbersome bolt-ons for features that may > not even solve all problems, I'd rather see well-defined methods and > example solutions for particular problems which allows scope for people > to customise if they so wish. Isn't that an example of "convention over > configuration"? ;-) It would also be far quicker than developing modules > that try to be all things to all people - and perhaps lessen the > perceived gap between tech. like Wicket and Tapestry in a much shorter > time period. > > > -Original Message- > From: p...@sartini-its.com [mailto:p...@sartini-its.com] On Behalf Of Piero > Sartini > Sent: 24 December 2009 20:34 > To: Tapestry users > Subject: Re: About T5 integration modules > > ... > > Howard, I think people are looking for these kind of integrations > because there is no tapestry module allowing them to secure there > pages. Of course you may argument that it is easy to build a > Dispatcher and define some custom annotations. That's true if you > managed to understand how these things work. But if you've just > started with tapestry, in my experience this is not that easy. Then > you remember about Spring Security or any other solution you are used > to and try to make use of it in your new tapestry-world. > > ... > >Piero > > - > 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 > >
Re: New Tapestry Website - http://www.seesaw.com/
Just a short note: the GA stuff seems to be loaded twice. In the header as well as in the footer. Piero - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: New Tapestry Website - http://www.seesaw.com/
6% is actually around the traffic generally seen on the web by IE6 http://www.w3schools.com/browsers/browsers_stats.asp Ben Gidley ha scritto: > Yes IE6 is a pain - it is only 6% of the traffic we are seeing (on the > holding page) so we decided we could live without it. > > We choose tapestry for a whole range of reasons big ones were > - Components - the side is heavily component based and we re-use elements > across pages > - AJAX - we use zones quite a lot and tapestry makes it really easy > - Development behaviour - it is easy to develop - fewer application > restarts > > I am going to go into more detail on the skillsmatter talk (shameless plug) > - and will post the slides online afterwards.. > > Ben Gidley > > www.gidley.co.uk > b...@gidley.co.uk > > > On Fri, Jan 29, 2010 at 12:06 PM, Peter Stavrinides < > p.stavrini...@albourne.com> wrote: > > >> Hi Ben, >> >> What motivated you to use Tapestry? obviously this is a great choice of >> course! >> >> >> As a side note: IE 6 is a malware software developers dream come true, it >> has to be the worst browser since Netscape 4, it has two critical flaws: >> 1. A core design flaw in the zone-based security framework that is >> "un-patchable", a vulnerability allowing remote execution via Active X, you >> enable any active X control, then you are susceptible, and >> 2. Incomplete Support for AJAX which requires active X enabled >> >> So its probably a wise decision to not support it. >> >> regards, >> Peter >> >> >> - Original Message - >> From: "Ben Gidley" >> To: "Tapestry users" >> Sent: Friday, 29 January, 2010 13:41:13 GMT +02:00 Athens, Beirut, >> Bucharest, Istanbul >> Subject: Re: New Tapestry Website - http://www.seesaw.com/ >> >> It is delibrate :) >> >> We don't support IE6. The beta login page is missing messaging telling you >> this nicely, the main site does have it. >> >> Ben Gidley >> >> www.gidley.co.uk >> b...@gidley.co.uk >> >> >> On Fri, Jan 29, 2010 at 11:33 AM, Lance Java > >>> wrote: >>> >>> Hi... just to give you a heads up... the css is not working as expected >>> >> in >> >>> IE6 (screenshot attached) >>> Your response to this may well be "get a better browser" which I totally >>> understand. >>> >>> Cheers, >>> Lance. >>> On 29 January 2010 10:18, Ben Gidley wrote: >>> >>> Hi, We have just launched http://www.seesaw.com/ into beta this is a >> Tapestry >> 5 powered website providing a video on demand site (like iPlayer or Hulu) >> in >> the UK market. It is still in beta but if you sign up there is a good chance of being invited soon. To help share this as a good Tapestry case study I will be producing >> some >> blog articles on key bits and doing a talk at Skillsmatter in London on the 23rd March - >> http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486sharing >> our experiences with Tapestry. Thanks Ben Gidley www.gidley.co.uk b...@gidley.co.uk >>> >>> - >>> 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 >> >> >> > > -- == dott. Ivano Mario Luberti Archimede Informatica societa' cooperativa a r. l. Sede Operativa Via Gereschi 36 - 56126- Pisa tel.: +39-050- 580959 tel/fax: +39-050-9711344 web: www.archicoop.it == - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: TestNG & Injecting Testify services into pages
>From a quick scan, I can't see anything obviously wrong with the code you've written. Just in case, make sure you are using the correct base class (com.formos.testify.testng.TapestryTest) as there are several base classes with the same simple name. The next thing is probably to check that the various setup methods are being called. Can you put a print statement into doSetUp() and check it's actually being called? This will let us see whether the setup isn't being called, or the @ForComponents processing isn't working properly. I suspect the doSetUp()isn't being called and that's going to be a TestNG thing: it should be calling TapestryTest#setUp() method... Can you check the TestNG output reports - I seem to remember that one of them outputs the sequence of setup methods and tests? If you're still stuck can you also send the testng configuration (xml) file? Let me know what you find. - Paul akochnev wrote on 29/01/2010 11:24:01: > > I'm running into trouble with using services declared inside of a Testify > TestNG test case with @ForComponents into my pages - when I ask the tester > to render a page, the services that were supposed to be injected, are null. > Any tips on what I'm doing wrong ? > > > Here is the sample code: > > public class StupidPageTest extends AbstractZdTapTest { >@ForComponents >private UserRepository userRepo; > > >@Override >protected void doSetUp() { >userRepo = EasyMock.createMock(UserRepository.class); >} > > >@Test >public void testElementIsOnPage() throws Exception { > > expect(userRepo.userRegistered((EmailAddress)anyObject())). > andStubReturn(Boolean.FALSE); >ZdUser testUser = new ZdUser(new EmailAddress("f...@bar.com"));; > > expect(userRepo.registerUser(isA(UserRegistration.class))). > andStubReturn(testUser); >replay(userRepo); >Document page = tester.renderPage("stupid"); >System.out.println("Rendered page: " + page.toString()); > >} > } > > public abstract class AbstractZdTapTest extends TapestryTest { > private static final TapestryTester SHARED_TESTER = new > TapestryTester("com.troymaxventures.zadachite", > ZdTestAppModule.class,AppModule.class); > > public AbstractZdTapTest() { > super(SHARED_TESTER); > } > } > > public abstract class AbstractZdTapTest extends TapestryTest { > private static final TapestryTester SHARED_TESTER = new > TapestryTester("com.troymaxventures.zadachite", ZdTestAppModule.class); > > public AbstractZdTapTest() { > super(SHARED_TESTER); > } > } > > public class ZdTestAppModule { > > /** > * Ensure that there are valid HTTP request/response objects in the > test, otherwise the ACEGI integration tends to blow up. > */ > public static void > contributeRequestHandler(OrderedConfiguration config, final > RequestGlobals requestGlobals) { > RequestFilter filter = new RequestFilter() { > > @Override > public boolean service(Request request, Response response, > RequestHandler handler) throws IOException { > > requestGlobals.storeServletRequestResponse(EasyMock. > createMock(HttpServletRequest.class), > EasyMock.createMock(HttpServletResponse.class)); > return handler.service(request, response); > } > }; > config.add("EnsureNonNullHttpRequestAndResponse", filter, > "before:*"); > } > } > > public class Stupid { > @Inject > private UserRepository userRepo; > void setupRender() throws StorageException { > // the userRepo is null here during the test > userRepo.getUser(new EmailAddress("f...@bar.com")); > } > } > > > -- > View this message in context: http://old.nabble.com/TestNG--- > Injecting-Testify-services-into-pages-tp27370621p27370621.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional EU corporate and regulatory disclosures.
Returning a FieldValidator to a TextField
Hello all, I'm new to tapestry and wanted to do a simple form with user defined fields. I have a Field class which contains a String Value and a String set of restrictions. I wanted to do something like this: My idea was to use the already existing FieldValidators like required, regexp, min, etc... Would like you're opinion on how to do this, if its even possible. I'm a bit clueless. Thanks in advance, Nuno Ferreira
Re: New Tapestry Website - http://www.seesaw.com/
Yes IE6 is a pain - it is only 6% of the traffic we are seeing (on the holding page) so we decided we could live without it. We choose tapestry for a whole range of reasons big ones were - Components - the side is heavily component based and we re-use elements across pages - AJAX - we use zones quite a lot and tapestry makes it really easy - Development behaviour - it is easy to develop - fewer application restarts I am going to go into more detail on the skillsmatter talk (shameless plug) - and will post the slides online afterwards.. Ben Gidley www.gidley.co.uk b...@gidley.co.uk On Fri, Jan 29, 2010 at 12:06 PM, Peter Stavrinides < p.stavrini...@albourne.com> wrote: > Hi Ben, > > What motivated you to use Tapestry? obviously this is a great choice of > course! > > > As a side note: IE 6 is a malware software developers dream come true, it > has to be the worst browser since Netscape 4, it has two critical flaws: > 1. A core design flaw in the zone-based security framework that is > "un-patchable", a vulnerability allowing remote execution via Active X, you > enable any active X control, then you are susceptible, and > 2. Incomplete Support for AJAX which requires active X enabled > > So its probably a wise decision to not support it. > > regards, > Peter > > > - Original Message - > From: "Ben Gidley" > To: "Tapestry users" > Sent: Friday, 29 January, 2010 13:41:13 GMT +02:00 Athens, Beirut, > Bucharest, Istanbul > Subject: Re: New Tapestry Website - http://www.seesaw.com/ > > It is delibrate :) > > We don't support IE6. The beta login page is missing messaging telling you > this nicely, the main site does have it. > > Ben Gidley > > www.gidley.co.uk > b...@gidley.co.uk > > > On Fri, Jan 29, 2010 at 11:33 AM, Lance Java >wrote: > > > Hi... just to give you a heads up... the css is not working as expected > in > > IE6 (screenshot attached) > > Your response to this may well be "get a better browser" which I totally > > understand. > > > > Cheers, > > Lance. > > On 29 January 2010 10:18, Ben Gidley wrote: > > > >> Hi, > >> > >> We have just launched http://www.seesaw.com/ into beta this is a > Tapestry > >> 5 > >> powered website providing a video on demand site (like iPlayer or Hulu) > in > >> the UK market. > >> > >> It is still in beta but if you sign up there is a good chance of being > >> invited soon. > >> > >> To help share this as a good Tapestry case study I will be producing > some > >> blog articles on key bits and doing a talk at Skillsmatter in London on > >> the > >> 23rd March - > >> > http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486sharing > >> our experiences with Tapestry. > >> > >> Thanks > >> > >> Ben Gidley > >> > >> www.gidley.co.uk > >> b...@gidley.co.uk > >> > > > > > > > > - > > 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 > >
Re: New Tapestry Website - http://www.seesaw.com/
Hi Ben, What motivated you to use Tapestry? obviously this is a great choice of course! As a side note: IE 6 is a malware software developers dream come true, it has to be the worst browser since Netscape 4, it has two critical flaws: 1. A core design flaw in the zone-based security framework that is "un-patchable", a vulnerability allowing remote execution via Active X, you enable any active X control, then you are susceptible, and 2. Incomplete Support for AJAX which requires active X enabled So its probably a wise decision to not support it. regards, Peter - Original Message - From: "Ben Gidley" To: "Tapestry users" Sent: Friday, 29 January, 2010 13:41:13 GMT +02:00 Athens, Beirut, Bucharest, Istanbul Subject: Re: New Tapestry Website - http://www.seesaw.com/ It is delibrate :) We don't support IE6. The beta login page is missing messaging telling you this nicely, the main site does have it. Ben Gidley www.gidley.co.uk b...@gidley.co.uk On Fri, Jan 29, 2010 at 11:33 AM, Lance Java wrote: > Hi... just to give you a heads up... the css is not working as expected in > IE6 (screenshot attached) > Your response to this may well be "get a better browser" which I totally > understand. > > Cheers, > Lance. > On 29 January 2010 10:18, Ben Gidley wrote: > >> Hi, >> >> We have just launched http://www.seesaw.com/ into beta this is a Tapestry >> 5 >> powered website providing a video on demand site (like iPlayer or Hulu) in >> the UK market. >> >> It is still in beta but if you sign up there is a good chance of being >> invited soon. >> >> To help share this as a good Tapestry case study I will be producing some >> blog articles on key bits and doing a talk at Skillsmatter in London on >> the >> 23rd March - >> http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486sharing >> our experiences with Tapestry. >> >> Thanks >> >> Ben Gidley >> >> www.gidley.co.uk >> b...@gidley.co.uk >> > > > > - > 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
Re: New Tapestry Website - http://www.seesaw.com/
It is delibrate :) We don't support IE6. The beta login page is missing messaging telling you this nicely, the main site does have it. Ben Gidley www.gidley.co.uk b...@gidley.co.uk On Fri, Jan 29, 2010 at 11:33 AM, Lance Java wrote: > Hi... just to give you a heads up... the css is not working as expected in > IE6 (screenshot attached) > Your response to this may well be "get a better browser" which I totally > understand. > > Cheers, > Lance. > On 29 January 2010 10:18, Ben Gidley wrote: > >> Hi, >> >> We have just launched http://www.seesaw.com/ into beta this is a Tapestry >> 5 >> powered website providing a video on demand site (like iPlayer or Hulu) in >> the UK market. >> >> It is still in beta but if you sign up there is a good chance of being >> invited soon. >> >> To help share this as a good Tapestry case study I will be producing some >> blog articles on key bits and doing a talk at Skillsmatter in London on >> the >> 23rd March - >> http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486sharing >> our experiences with Tapestry. >> >> Thanks >> >> Ben Gidley >> >> www.gidley.co.uk >> b...@gidley.co.uk >> > > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org >
Re: New Tapestry Website - http://www.seesaw.com/
Hi... just to give you a heads up... the css is not working as expected in IE6 (screenshot attached) Your response to this may well be "get a better browser" which I totally understand. Cheers, Lance. On 29 January 2010 10:18, Ben Gidley wrote: > Hi, > > We have just launched http://www.seesaw.com/ into beta this is a Tapestry > 5 > powered website providing a video on demand site (like iPlayer or Hulu) in > the UK market. > > It is still in beta but if you sign up there is a good chance of being > invited soon. > > To help share this as a good Tapestry case study I will be producing some > blog articles on key bits and doing a talk at Skillsmatter in London on the > 23rd March - > http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486 sharing > our experiences with Tapestry. > > Thanks > > Ben Gidley > > www.gidley.co.uk > b...@gidley.co.uk > - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
TestNG & Injecting Testify services into pages
I'm running into trouble with using services declared inside of a Testify TestNG test case with @ForComponents into my pages - when I ask the tester to render a page, the services that were supposed to be injected, are null. Any tips on what I'm doing wrong ? Here is the sample code: public class StupidPageTest extends AbstractZdTapTest { @ForComponents private UserRepository userRepo; @Override protected void doSetUp() { userRepo = EasyMock.createMock(UserRepository.class); } @Test public void testElementIsOnPage() throws Exception { expect(userRepo.userRegistered((EmailAddress)anyObject())).andStubReturn(Boolean.FALSE); ZdUser testUser = new ZdUser(new EmailAddress("f...@bar.com"));; expect(userRepo.registerUser(isA(UserRegistration.class))).andStubReturn(testUser); replay(userRepo); Document page = tester.renderPage("stupid"); System.out.println("Rendered page: " + page.toString()); } } public abstract class AbstractZdTapTest extends TapestryTest { private static final TapestryTester SHARED_TESTER = new TapestryTester("com.troymaxventures.zadachite", ZdTestAppModule.class,AppModule.class); public AbstractZdTapTest() { super(SHARED_TESTER); } } public abstract class AbstractZdTapTest extends TapestryTest { private static final TapestryTester SHARED_TESTER = new TapestryTester("com.troymaxventures.zadachite", ZdTestAppModule.class); public AbstractZdTapTest() { super(SHARED_TESTER); } } public class ZdTestAppModule { /** * Ensure that there are valid HTTP request/response objects in the test, otherwise the ACEGI integration tends to blow up. */ public static void contributeRequestHandler(OrderedConfiguration config, final RequestGlobals requestGlobals) { RequestFilter filter = new RequestFilter() { @Override public boolean service(Request request, Response response, RequestHandler handler) throws IOException { requestGlobals.storeServletRequestResponse(EasyMock.createMock(HttpServletRequest.class), EasyMock.createMock(HttpServletResponse.class)); return handler.service(request, response); } }; config.add("EnsureNonNullHttpRequestAndResponse", filter, "before:*"); } } public class Stupid { @Inject private UserRepository userRepo; void setupRender() throws StorageException { // the userRepo is null here during the test userRepo.getUser(new EmailAddress("f...@bar.com")); } } -- View this message in context: http://old.nabble.com/TestNG---Injecting-Testify-services-into-pages-tp27370621p27370621.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
New Tapestry Website - http://www.seesaw.com/
Hi, We have just launched http://www.seesaw.com/ into beta this is a Tapestry 5 powered website providing a video on demand site (like iPlayer or Hulu) in the UK market. It is still in beta but if you sign up there is a good chance of being invited soon. To help share this as a good Tapestry case study I will be producing some blog articles on key bits and doing a talk at Skillsmatter in London on the 23rd March - http://skillsmatter.com/event/java-jee/tapestry-5-in-action/zx-486 sharing our experiences with Tapestry. Thanks Ben Gidley www.gidley.co.uk b...@gidley.co.uk
from tapestry5 quickstart to jumpstart?
Hello, I am new to tapestry5 and I followed http://tapestry.formos.com/wiki/display/T5IDEINT/Eclipse+%28including+Maven%29, which was an awesome direction to get tapestry5 quickstart working. I also downloaded jumpstart, but unfortunately could not successfully get it to work. The examples in jumpstart are very cool, now I am wondering if there is a tutorial or some information on how to start from the tapestry quickstart to get openejb, hibernate, with hsqldb set up to try some of the examples in the jumpstart. -- that would certainly help me a lot to get going using tapestry5 for my project. Thanks a lot. I am really excited about learning/using tapestry... Thanks a bunch! -- View this message in context: http://old.nabble.com/from-tapestry5-quickstart-to-jumpstart--tp27367758p27367758.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Back to request-driven frameworks...What a step back!
Hello, I rarely write here, and that's always when I have a problem with some part of Tapestry, but this time I want to praise it a bit since I had to work recently on some project made in reques-driven framework (Spring MVC). For years I have been working just inTapestry, so I just forgot how it is to work again in this old-school type of way, and what a step back it was! Probably everyone is thinking now how good is that one can encapsulate some piece of HTML and action inside a component, and reuse it afterwards. Well yes, but that wasn't THE thing I missed most when working on new project. First thing that I missed was the structure of application's web portion. I am a big fan of domain-driven design (DDD) which teaches us that our code should be aligned with our mental model. When one thinks about web application, we always think in terms of pages and actions that are given on them, so it is natural that our code should be structured this way - classes that represent pages, and methods on them that represent actions on that pages. Also, many web pages require certain parameters to be displayed at all, and they should be enforced somehow. Instead, in Spring MVC (any probably many others similar frameworks) one has freedom to structure web controllers any way they want. Hell, you can have just one controller for whole app and cram all request handlers into it. There is no notion of "page request" or "action request" that are so natural to our mental model, just low-level HTTP request thinking there. Some would say that freedom is good, but I don't. Just think how many developers truly understand how to structure whole app, and have enough self-discipline to enforce that. It's much better when framework forces you to think and develop in proper way. And the biggest selling point of Tapestry compared to these frameworks was amount of care one has to give to URLs and parameters. To be honest, you have to think abou them in Tapestry to some degree also, but that degree is so much smaller when compared to Spring. Tapestry allow you tu reuse compile-checking so much more, and refactoring which is essential part of any serious development becomes practicaly painless then. Just for example, in my "ViewCompany" page I can navigate to its employees. In Spring MVC I had to write: View Employee although it's quite short, I had to take care about bunch of non-type-safe string such as "admin", "employees", "view", "employeeId" etc... Instead in Tapestry, I enhanced PageLink component with my tape-safe version that accepts configured page instances: Vew Employee ..and in page class: @InjectPage private EmployeePage employeePage; public EmployeePage getConfiguredEmployeePage() { return employeePage.configured(loopedEmployee.getId()); } Voila! I don't care what package is my page located in, or if it's name gets changed, or if required parameters for its display change since I know my compiler will notify me. Non-type-safe string here is "configuredEmployeePage", but it's just one, and it's what I call "local string" - it is only tied to accessor in the same page class one is working on, and therefore much easier to think and care about, compared when one has to think about all other templates in app where this page is referenced. This framework quality really shine not only during initial page development, but especially later when you start to refactor things. You simply have much more control upon whole application. Just to clarify - method "configured" that I place in each page is basically just calling "onActivate" that configures activation context and also returns self as return value. The nicest possible way to implement this render request would probably be via constructor, something like: public EmployeePage getConfiguredEmployeePage() { return new EmployeePage(loopedEmployee.getId()); } , but I understand that page pooling and maybe some other features stand in way. Anyone reading this, feel free to vote for my JIRA issue to upgrade PageLink for this type-safe way of rendering page links :) https://issues.apache.org/jira/browse/TAP5-757 It's really trivial update to tapestry code Regards, Vjeran - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: How to get rid of some T5 stack traces ...
Hi ! Hum ... xhr !? That reminds me about that we have had problems with Internet Explorer and zone updates. Somehting with that the xhr flag (!?) was not set ... I will have to dig into this ... but don't have the time right now! /Gunnar 2010/1/29 Ville Virtanen > > Hi, > > hrx -> xhr :D > > It is true that T5 catches many of these > "I-did-not-even-know-something-makes-these" -requests, and it is good to > know of this happening. > > Obviously I should also take a look at the URL re-write functionality. > > - Ville > > Ps. It's minus 20 Celsius here... (-4 Fahrenheit) I'm freezing! :) > > > Thiago H. de Paula Figueiredo wrote: > > > > On Thu, 28 Jan 2010 14:47:08 -0200, Ville Virtanen > > wrote: > > > >> Hi, > > > > Hi! > > > >> One way to prevent this is to contribute a T5 httprequest filter that > >> just redirects to error page if it detects a post url submitted using > >> GET. > > > > Well, Tapestry always submit by POST, so any submission using GET is not > > an human user. > > If you want to provide access to robots, I think it's better to have some > > kind of API linke Twitter has. > > > >> (And isn't hrx?) > > > > hrx? I guess I need some more internet vocabulary . . . hehehe > > > >> This is one of the T5 weaker sides I think. It produces many > >> like these in the production for us for a site that slightly altered url > >> layout, although these errors are rarely made by human. > > > > I think this is an upside, not a downside, as it shows that suspicious > > requests are being made. > > > >> Haven't seen that one on our production servers, however our servers are > >> getting hammered by someone trying to get /index.html which produces > >> "there is no such component in page... blah .. the valid components > >> are...". > >> This can be fixed by implementing a component named html that does > >> absolutely nothing and placing it to the page. > > > > You could also have an URL rewriter rule to catch that. > > > >> - Ville (From f*cking cold and snowy Turku ;)) > > > > Thiago (from f*cking-but-not-that-much hot Belo Horizonte) ;) > > > > -- > > Thiago H. de Paula Figueiredo > > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > > and instructor > > Owner, software architect and developer, Ars Machina Tecnologia da > > Informação Ltda. > > http://www.arsmachina.com.br > > > > - > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > > > -- > View this message in context: > http://old.nabble.com/How-to-get-rid-of-some-T5-stack-traces-...-tp27352338p27367110.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- [Hem: 08-715 59 57, Mobil: 0708-52 62 90] Allévägen 2A, 132 42 Saltsjö-Boo
Re: How to get rid of some T5 stack traces ...
Hi, hrx -> xhr :D It is true that T5 catches many of these "I-did-not-even-know-something-makes-these" -requests, and it is good to know of this happening. Obviously I should also take a look at the URL re-write functionality. - Ville Ps. It's minus 20 Celsius here... (-4 Fahrenheit) I'm freezing! :) Thiago H. de Paula Figueiredo wrote: > > On Thu, 28 Jan 2010 14:47:08 -0200, Ville Virtanen > wrote: > >> Hi, > > Hi! > >> One way to prevent this is to contribute a T5 httprequest filter that >> just redirects to error page if it detects a post url submitted using >> GET. > > Well, Tapestry always submit by POST, so any submission using GET is not > an human user. > If you want to provide access to robots, I think it's better to have some > kind of API linke Twitter has. > >> (And isn't hrx?) > > hrx? I guess I need some more internet vocabulary . . . hehehe > >> This is one of the T5 weaker sides I think. It produces many >> like these in the production for us for a site that slightly altered url >> layout, although these errors are rarely made by human. > > I think this is an upside, not a downside, as it shows that suspicious > requests are being made. > >> Haven't seen that one on our production servers, however our servers are >> getting hammered by someone trying to get /index.html which produces >> "there is no such component in page... blah .. the valid components >> are...". >> This can be fixed by implementing a component named html that does >> absolutely nothing and placing it to the page. > > You could also have an URL rewriter rule to catch that. > >> - Ville (From f*cking cold and snowy Turku ;)) > > Thiago (from f*cking-but-not-that-much hot Belo Horizonte) ;) > > -- > Thiago H. de Paula Figueiredo > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > and instructor > Owner, software architect and developer, Ars Machina Tecnologia da > Informação Ltda. > http://www.arsmachina.com.br > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > > -- View this message in context: http://old.nabble.com/How-to-get-rid-of-some-T5-stack-traces-...-tp27352338p27367110.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org