So I am not crazy! Good to hear and thanks for the help. N
On Wed, Oct 20, 2010 at 10:15 AM, VANKEISBELCK Remi <r...@rvkb.com> wrote: > Hi Nathan, > > Just had a quick look to your test. Refactored to : > http://pastebin.com/02nY8aWF > > The two test methods that use a string url for the binding work fine. The > one using the beanclass doesn't work... > > As a workaround for now, you can use stringified urls in your tests. I'll > try to understand what's going on as soon as I have a moment. > > Cheers > > Remi > > 2010/10/20 Nathan Maves <nathan.ma...@gmail.com> >> >> Sure thing Remi. The following example fails because the id is null. >> >> Nathan >> >> >> ACTION >> >> package com.foo.stripes; >> >> import net.sourceforge.stripes.action.ActionBean; >> import net.sourceforge.stripes.action.ActionBeanContext; >> import net.sourceforge.stripes.action.DefaultHandler; >> import net.sourceforge.stripes.action.Resolution; >> import net.sourceforge.stripes.action.UrlBinding; >> >> @UrlBinding("/foo/{$event}/{id}") >> public class TestAction implements ActionBean { >> ActionBeanContext context; >> >> Integer id; >> >> �...@defaulthandler >> public Resolution bar() { >> >> return null; >> } >> >> public Integer getId() { >> return id; >> } >> >> public void setId(Integer id) { >> this.id = id; >> } >> >> �...@override >> public void setContext(ActionBeanContext context) { >> this.context = context; >> } >> >> �...@override >> public ActionBeanContext getContext() { >> return this.context; >> } >> } >> >> TEST >> >> package com.foo.stripes; >> >> import java.util.HashMap; >> import java.util.Map; >> import net.sourceforge.stripes.controller.DispatcherServlet; >> import net.sourceforge.stripes.controller.StripesFilter; >> import net.sourceforge.stripes.mock.MockRoundtrip; >> import net.sourceforge.stripes.mock.MockServletContext; >> import org.junit.Before; >> import org.junit.Test; >> >> import static org.junit.Assert.*; >> >> public class ParameterTestAction { >> MockServletContext context; >> >> �...@before >> public void setup() { >> context = new MockServletContext("test"); >> >> // Add the Stripes Filter >> Map<String,String> filterParams = new >> HashMap<String,String>(); >> filterParams.put("ActionResolver.Packages", >> "com.foo.stripes"); >> context.addFilter(StripesFilter.class, "StripesFilter", >> filterParams); >> >> // Add the Stripes Dispatcher >> context.setServlet(DispatcherServlet.class, >> "StripesDispatcher", null); >> } >> >> �...@test >> public void testParameter() throws Exception { >> final Integer id = 2; >> MockRoundtrip trip = new MockRoundtrip(context, >> TestAction.class); >> trip.setParameter("id", id.toString()); >> trip.execute(); >> >> TestAction action = trip.getActionBean(TestAction.class); >> assertEquals(id, action.getId()); >> >> } >> } >> >> On Wed, Oct 20, 2010 at 2:56 AM, VANKEISBELCK Remi <r...@rvkb.com> wrote: >> > Haven't looked yet, but the log might be "normal". >> > >> > Could you post a test case that reproduces your bug ? This way I'll have >> > a >> > closer look if you want. >> > >> > Cheers >> > >> > Remi >> > >> > 2010/10/20 Nathan Maves <nathan.ma...@gmail.com> >> >> >> >> Just tested this with logging on 1.5.3. It looks like there is an >> >> issue with the {$event} binding but I am not sure that is really an >> >> issue or not. >> >> >> >> Let me know if there is anything else I can do on my end to help out. >> >> >> >> Here is the log for 1.5.3 >> >> >> >> INFO 2010-10-19 21:46:10,991 net.sourceforge.stripes.util.Log.info(): >> >> Stripes Initialization Complete. Version: 1.5.3, Build: 1.5.3 >> >> DEBUG 2010-10-19 21:46:11,844 >> >> net.sourceforge.stripes.util.Log.debug(): LocalePicker selected >> >> locale: en_US >> >> DEBUG 2010-10-19 21:46:11,844 >> >> net.sourceforge.stripes.util.Log.debug(): LocalePicker did not pick a >> >> character encoding, using default: UTF-8 >> >> DEBUG 2010-10-19 21:46:11,848 >> >> net.sourceforge.stripes.util.Log.debug(): Matched >> >> /admin/product/{$event}/{product.id} to >> >> /admin/product/{$event}/{product.id} >> >> INFO 2010-10-19 21:46:11,858 net.sourceforge.stripes.util.Log.info(): >> >> Expression validation will be performed using: >> >> net.sourceforge.stripes.validation.expression.Jsp20ExpressionExecutor >> >> DEBUG 2010-10-19 21:46:11,859 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage RequestInit >> >> DEBUG 2010-10-19 21:46:11,862 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage ActionBeanResolution >> >> DEBUG 2010-10-19 21:46:11,863 >> >> net.sourceforge.stripes.util.Log.debug(): Matched >> >> /admin/product/{$event}/{product.id} to >> >> /admin/product/{$event}/{product.id} >> >> DEBUG 2010-10-19 21:46:11,866 >> >> net.sourceforge.stripes.util.Log.debug(): Matched >> >> /admin/product/{$event}/{product.id} to >> >> /admin/product/{$event}/{product.id} >> >> DEBUG 2010-10-19 21:46:11,871 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage HandlerResolution >> >> DEBUG 2010-10-19 21:46:11,874 >> >> net.sourceforge.stripes.util.Log.debug(): Resolved event: edit; will >> >> invoke: ProductEditAction.edit() >> >> DEBUG 2010-10-19 21:46:11,876 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage BindingAndValidation >> >> DEBUG 2010-10-19 21:46:11,961 >> >> net.sourceforge.stripes.util.Log.debug(): Loaded validations for >> >> ActionBean ProductEditAction: >> >> product.title->ValidationMetadata{required=true}, >> >> product.sku->ValidationMetadata{required=true}, >> >> product.languageId->ValidationMetadata{required=true} >> >> DEBUG 2010-10-19 21:46:11,963 >> >> net.sourceforge.stripes.util.Log.debug(): Running required field >> >> validation on bean class >> >> com.dreamscape.stripes.admin.products.ProductEditAction >> >> DEBUG 2010-10-19 21:46:11,973 >> >> net.sourceforge.stripes.util.Log.debug(): Could not bind property with >> >> name [{$event}] to bean of type: ProductEditAction : Bean class >> >> com.dreamscape.stripes.admin.products.ProductEditAction does not >> >> contain a property called '{$event}'. As a result the following >> >> expression could not be evaluated: {$event} >> >> DEBUG 2010-10-19 21:46:11,982 >> >> net.sourceforge.stripes.util.Log.debug(): Creating >> >> net.sourceforge.stripes.controller.BindingPolicyManager for class >> >> com.dreamscape.stripes.admin.products.ProductEditAction with default >> >> policy null >> >> DEBUG 2010-10-19 21:46:11,987 >> >> net.sourceforge.stripes.util.Log.debug(): Translated globs [] to regex >> >> DEBUG 2010-10-19 21:46:11,987 >> >> net.sourceforge.stripes.util.Log.debug(): Translated globs [] to regex >> >> DEBUG 2010-10-19 21:46:11,989 >> >> net.sourceforge.stripes.util.Log.debug(): Translated globs >> >> [product.title, product.sku, product.languageId] to regex >> >> product\.title|product\.sku|product\.languageId >> >> DEBUG 2010-10-19 21:46:11,991 >> >> net.sourceforge.stripes.util.Log.debug(): Converting 2 value(s) using >> >> converter net.sourceforge.stripes.validation.IntegerTypeConverter >> >> DEBUG 2010-10-19 21:46:11,996 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage CustomValidation >> >> DEBUG 2010-10-19 21:46:11,999 >> >> net.sourceforge.stripes.util.Log.debug(): Looking up localized field >> >> name with messageKey: product.id >> >> DEBUG 2010-10-19 21:46:12,005 >> >> net.sourceforge.stripes.util.Log.debug(): The following validation >> >> errors need to be fixed: >> >> -> [product.id] invalid number >> >> DEBUG 2010-10-19 21:46:12,008 >> >> net.sourceforge.stripes.util.Log.debug(): Transitioning to lifecycle >> >> stage ResolutionExecution >> >> DEBUG 2010-10-19 21:46:12,009 >> >> net.sourceforge.stripes.util.Log.debug(): Looking for HttpCache on >> >> com.dreamscape.stripes.admin.products.ProductEditAction.edit() >> >> DEBUG 2010-10-19 21:46:12,012 >> >> net.sourceforge.stripes.util.Log.debug(): No URL binding matches >> >> _default_source_page_ >> >> DEBUG 2010-10-19 21:46:12,013 >> >> net.sourceforge.stripes.util.Log.debug(): No URL binding matches >> >> _default_source_page_ >> >> >> >> On Tue, Oct 19, 2010 at 2:19 AM, VANKEISBELCK Remi <r...@rvkb.com> >> >> wrote: >> >> > Hi Nathan, >> >> > >> >> > Try turning Stripes logs to debug and see what happens. The binding >> >> > code >> >> > is >> >> > pretty verbose. >> >> > >> >> > I've been using clean URLs in mock trips without any problem so far. >> >> > >> >> > Cheers >> >> > >> >> > Remi >> >> > >> >> > 2010/10/19 Nathan Maves <nathan.ma...@gmail.com> >> >> >> >> >> >> Ah the tricky part is that these are no error messages nor >> >> >> exceptions. Just unit tests failing when we upgrade stripes. >> >> >> >> >> >> This is because the url binding variables are not getting bound in >> >> >> the >> >> >> MockRoundTrip properly (at all). >> >> >> >> >> >> One thing I don't think I tested is removing the {$event} from the >> >> >> binding. >> >> >> >> >> >> @UrlBinding("/admin/product/{$event}/{product.id}") >> >> >> >> >> >> >> >> >> On Mon, Oct 18, 2010 at 7:45 PM, Nikolaos Giannopoulos >> >> >> <nikol...@brightminds.org> wrote: >> >> >> > Nathan, >> >> >> > >> >> >> > We have limited test cases for our Action Beans at this time. So >> >> >> > far >> >> >> > no >> >> >> > issues. >> >> >> > >> >> >> > Could you be more specific about the error that is being produced. >> >> >> > >> >> >> > --Nikolaos >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > Nathan Maves wrote: >> >> >> >> Is there anyone else out here using UrlBinding with >> >> >> >> MockRoundTrip? >> >> >> >> This is killing me that we can upgrade to the latest Stripes >> >> >> >> codebase. >> >> >> >> >> >> >> >> Nathan >> >> >> >> >> >> >> >> On Wed, Oct 13, 2010 at 11:32 AM, Nathan Maves >> >> >> >> <nathan.ma...@gmail.com> >> >> >> >> wrote: >> >> >> >> >> >> >> >>> We have multiple test cases where we are using UrlBinding with >> >> >> >>> 1.5 >> >> >> >>> and >> >> >> >>> everything works perfect. >> >> >> >>> >> >> >> >>> Here is an example of one of our bindings >> >> >> >>> >> >> >> >>> @UrlBinding("/admin/product/{$event}/{product.id}") >> >> >> >>> >> >> >> >>> All versions (1.5.1, 1.5.2, 1.5.3) work fine outside of the test >> >> >> >>> fixture. It is only within a test using the MockRoundTrip where >> >> >> >>> we >> >> >> >>> get the error. The error is a validation error where it claims >> >> >> >>> to >> >> >> >>> have a conversion issue where the replacement parts are >> >> >> >>> ["Product >> >> >> >>> Id", >> >> >> >>> "{product.id}"]. We get this when passing in a parameter or >> >> >> >>> not. >> >> >> >>> >> >> >> >>> I did find the following change from 1.5 to 1.5.1 that might >> >> >> >>> have >> >> >> >>> something to do with it. >> >> >> >>> >> >> >> >>> http://www.stripesframework.org/jira/browse/STS-592 >> >> >> >>> >> >> >> >>> >> >> >> >>> Nathan >> >> >> >>> >> >> >> >>> >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > ------------------------------------------------------------------------------ >> >> >> > Download new Adobe(R) Flash(R) Builder(TM) 4 >> >> >> > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly >> >> >> > Flex(R) Builder(TM)) enable the development of rich applications >> >> >> > that >> >> >> > run >> >> >> > across multiple browsers and platforms. Download your free trials >> >> >> > today! >> >> >> > http://p.sf.net/sfu/adobe-dev2dev >> >> >> > _______________________________________________ >> >> >> > Stripes-users mailing list >> >> >> > Stripes-users@lists.sourceforge.net >> >> >> > https://lists.sourceforge.net/lists/listinfo/stripes-users >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> >> Download new Adobe(R) Flash(R) Builder(TM) 4 >> >> >> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly >> >> >> Flex(R) Builder(TM)) enable the development of rich applications >> >> >> that >> >> >> run >> >> >> across multiple browsers and platforms. Download your free trials >> >> >> today! >> >> >> http://p.sf.net/sfu/adobe-dev2dev >> >> >> _______________________________________________ >> >> >> Stripes-users mailing list >> >> >> Stripes-users@lists.sourceforge.net >> >> >> https://lists.sourceforge.net/lists/listinfo/stripes-users >> >> > >> >> > >> >> > >> >> > >> >> > ------------------------------------------------------------------------------ >> >> > Download new Adobe(R) Flash(R) Builder(TM) 4 >> >> > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly >> >> > Flex(R) Builder(TM)) enable the development of rich applications that >> >> > run >> >> > across multiple browsers and platforms. Download your free trials >> >> > today! >> >> > http://p.sf.net/sfu/adobe-dev2dev >> >> > _______________________________________________ >> >> > Stripes-users mailing list >> >> > Stripes-users@lists.sourceforge.net >> >> > https://lists.sourceforge.net/lists/listinfo/stripes-users >> >> > >> >> > >> > >> > > > ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Stripes-users mailing list Stripes-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-users