[ http://jira.codehaus.org/browse/JBEHAVE-492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=264708#action_264708 ]
Brian Repko commented on JBEHAVE-492: ------------------------------------- Hunh? When using the DI/IoC container the steps classes are created with the container and we pass in instances. They are singletons for the most part and should work just fine in a multi-threaded environment but they aren't created by JBehave. The Spring-Security example shows this with spring but I think the general trader examples do this as well. I'm pretty sure you don't want JBehave to get into the fun intricacies of object creation. > ConfigurableEmbedder.addSteps(..) should take classes not instances. > -------------------------------------------------------------------- > > Key: JBEHAVE-492 > URL: http://jira.codehaus.org/browse/JBEHAVE-492 > Project: JBehave > Issue Type: New Feature > Components: Core > Affects Versions: 3.x > Reporter: Paul Hammant > Fix For: 3.x > > > public void addSteps(List<Class> steps) { > } > ... would be better. > Why? There's an instance that's made during the setup of a suite (refer > EtsyStories). If you are running in multi-threaded mode, that instance is > **never** used during the running of scenarios. > In multi-threaded mode, there's a constructor for BasePage that takes a > WebDriverProvider. When it is passed in during the primordial instantiation > phase, no WebDriver has been initialized. We don't want to do that of course > because (a) we know this instance is going to be garbage collected and never > used, and (b) on SauceLabs at least it would result in browser opening in the > cloud then closing (or maybe not closing, but never used; I'm not sure). > JBehave does not actually need the instance. I believe this is provable. > Instead it could perfectly well use the class definition without the instance > ref somehow. > Proposal: Long overdue, I think, but could for 4.x we shift to using > class-defs. Either rework CandidateSteps to hold a Class rather than an > instance. Or further do a away (move the logic elsewhere) with > CandidateSteps, and use the POJO Step's class-def directly. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email