[ 
http://jira.codehaus.org/browse/JBEHAVE-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mauro Talevi resolved JBEHAVE-260.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0.2

SpringStepsFactory provides protected method:

{code}
protected List<Object> stepsInstances();
{code}

> Improve SpringStepsFactory to allow delegating the CandidateStep creation to 
> other factories
> --------------------------------------------------------------------------------------------
>
>                 Key: JBEHAVE-260
>                 URL: http://jira.codehaus.org/browse/JBEHAVE-260
>             Project: JBehave
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.5.1
>            Reporter: Bruno Bieth
>             Fix For: 3.0.2
>
>
> Change the SpringStepsFactory so it doesn't create CandidateSteps but rather 
> return bean instances. That way I can have a different way of instanciating 
> CandidateSteps.
> {code}
> addSteps(new ParameterConverterStepsFactory().createCandidateSteps( new 
> SpringStepsFactory(context).createStepsInstances() ));
> {code}
> And the simplified SpringStepsFactory :
> {code}
> public class SpringStepsFactory {
>     private final ListableBeanFactory parent;
>     
>     public SpringStepsFactory(ListableBeanFactory parent) {           
>       this.parent = parent;
>     }
>     public Object[] createStepsInstances() {
>         List<Object> steps = new ArrayList<Object>();
>         for (String name : parent.getBeanDefinitionNames()) {
>             Object bean = parent.getBean(name);
>             if (containsScenarioAnnotations(bean.getClass())) {
>                 steps.add(bean);
>             }
>         }
>         return steps.toArray(new Object[steps.size()]);
>     }
>        
>     private boolean containsScenarioAnnotations(Class<?> componentClass) {
>         for (Method method : componentClass.getMethods()) {
>             for (Annotation annotation : method.getAnnotations()) {
>                 if 
> (annotation.annotationType().getName().startsWith("org.jbehave.scenario.annotations"))
>  {
>                     return true;
>                 }
>             }
>         }
>         return false;
>     }
> }
> {code}

-- 
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