ConfigurableSteps.addSteps(..) should take classes not instances.
-----------------------------------------------------------------

                 Key: JBEHAVE-492
                 URL: http://jira.codehaus.org/browse/JBEHAVE-492
             Project: JBehave
          Issue Type: Bug
          Components: Core
    Affects Versions: 3.x
            Reporter: Paul Hammant


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


Reply via email to