package org.jbehave.examples.core.weld;
import javax.enterprise.inject.New;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.jbehave.core.annotations.weld.WeldStep;
import org.jbehave.examples.core.service.TradingService;
import org.jbehave.examples.core.steps.AndSteps;
import org.jbehave.examples.core.steps.BeforeAfterSteps;
import org.jbehave.examples.core.steps.CalendarSteps;
import org.jbehave.examples.core.steps.PriorityMatchingSteps;
import org.jbehave.examples.core.steps.SandpitSteps;
import org.jbehave.examples.core.steps.SearchSteps;
/**
* @author aaronwalker
*
*/
@Singleton
public class WeldStepProducer
{
@Inject @New
private TradingService tradingService;
@Singleton @Produces
public TradingService getTradingService()
{
return tradingService;
}
//extended Trader example steps using an annotated static classes to mark them as Weld Steps
@WeldStep
public static class WeldBeforeAfterSteps extends BeforeAfterSteps {}
@WeldStep
public static class WeldAndSteps extends AndSteps {}
@WeldStep
public static class WeldCalendarSteps extends CalendarSteps {}
@WeldStep
public static class WeldPriorityMatchingSteps extends PriorityMatchingSteps {}
@WeldStep
public static class WeldSandpitSteps extends SandpitSteps {}
@WeldStep
public static class WeldSearchSteps extends SearchSteps {}
}