package fitnesse.testsystems.slim; import fitnesse.slim.JavaSlimFactory; import fitnesse.slim.SlimServer; import fitnesse.slim.SlimService; import fitnesse.slim.fixtureInteraction.FixtureInteraction; import fitnesse.testsystems.ClientBuilder; import fitnesse.testsystems.Descriptor; import static fitnesse.testsystems.slim.SlimClientBuilder.SLIM_FLAGS; /** * In-process version, mainly for testing FitNesse itself. */ public class InProcessSlimClientBuilder extends ClientBuilder<SlimClient> { public InProcessSlimClientBuilder(Descriptor descriptor) { super(descriptor); } @Override public SlimClient build() { final SlimService.Options options = SlimService.parseCommandLine(getSlimFlags()); Integer statementTimeout = options != null ? options.statementTimeout : null; SlimServer slimServer = createSlimServer(statementTimeout, isDebug()); return new InProcessSlimClient(getTestSystemName(), slimServer, getExecutionLogListener()); } @Override protected String defaultTestRunner() { return "in-process"; } protected SlimServer createSlimServer(Integer timeout, boolean verbose) { FixtureInteraction interaction = JavaSlimFactory.createInteraction(null); return JavaSlimFactory.createJavaSlimFactory(interaction, timeout, verbose).getSlimServer(); } protected String[] getSlimFlags() { String slimFlags = getVariable("slim.flags"); if (slimFlags == null) { slimFlags = getVariable(SLIM_FLAGS); } return slimFlags == null ? new String[] {} : parseCommandLine(slimFlags); } }