package org.test4j.module.dbfit.fixture.dto;
import org.test4j.module.ICore;
import org.test4j.module.dbfit.DbFitTestedContext;
import org.test4j.module.dbfit.DbFitTestedContext.RunIn;
import org.test4j.module.dbfit.fixture.Test4JFixture;
import org.test4j.module.spring.annotations.SpringContext;
import org.test4j.module.spring.remote.RemoteInvokerRegister;
import org.test4j.tools.commons.AnnotationHelper;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringFixture extends Test4JFixture implements ICore {
private ClassPathXmlApplicationContext ctx;
/**
* 注入spring bean
*/
public SpringFixture() {
DbFitTestedContext.setRunIn(RunIn.FitNesse);
SpringContext anotations = AnnotationHelper.getClassLevelAnnotation(SpringContext.class, this.getClass());
if (anotations == null) {
return;
}
try {
String[] locations = anotations.value();
// boolean shared = anotations.share();
ctx = new FixtureSpringContext(locations, this.getClass(), false);
FixtureBeanInjector.injectBeans(ctx, this);
RemoteInvokerRegister.injectSpringBeanRemote(ctx, this);
} catch (Throwable e) {
e.printStackTrace();
throw new RuntimeException("spring inject error", e);
}
}
}