package org.marketcetera.strategy; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Executes a Java strategy using the default classpath. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: JavaClasspathExecutionEngine.java 16901 2014-05-11 16:14:11Z colin $ * @since 2.4.0 */ @ClassVersion("$Id: JavaClasspathExecutionEngine.java 16901 2014-05-11 16:14:11Z colin $") public class JavaClasspathExecutionEngine implements ExecutionEngine { /* (non-Javadoc) * @see org.marketcetera.strategy.ExecutionEngine#prepare(org.marketcetera.strategy.Strategy, java.lang.String) */ @Override public void prepare(Strategy inStrategy, String inProcessedScript) throws StrategyException { strategy = inStrategy; } /* (non-Javadoc) * @see org.marketcetera.strategy.ExecutionEngine#start() */ @Override public Object start() throws StrategyException { try { return getClass().getClassLoader().loadClass(strategy.getName()).newInstance(); } catch (ClassNotFoundException e) { throw new StrategyException(e); } catch (InstantiationException e) { throw new StrategyException(e); } catch (IllegalAccessException e) { throw new StrategyException(e); } } /* (non-Javadoc) * @see org.marketcetera.strategy.ExecutionEngine#stop() */ @Override public void stop() throws StrategyException { // nothing to do } /** * strategy to be executed */ private Strategy strategy; }