1 4 package com.tctest.spring; 5 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 8 import com.tc.simulator.app.ApplicationConfig; 9 import com.tc.simulator.listener.ListenerProvider; 10 import com.tcspring.BeanContainer; 11 import com.tcspring.ComplexBeanId; 12 import com.tcspring.DistributableBeanFactory; 13 import com.tctest.TransparentTestBase; 14 import com.tctest.runner.AbstractTransparentApp; 15 16 public abstract class SimpleTransparentTestBase extends TransparentTestBase { 17 18 protected abstract int getNodeCount(); 19 20 protected void setUp() throws Exception { 21 super.setUp(); 22 getTransparentAppConfig().setClientCount(getNodeCount()).setApplicationInstancePerClientCount(getExecutionCount()) 23 .setIntensity(getLoopIterations()); 24 initializeTestRunner(); 25 } 26 27 protected final int getLoopIterations() { 28 return 1; 29 } 30 31 protected final int getExecutionCount() { 32 return 1; 33 } 34 35 public abstract static class AbstractSimpleTransparentApp extends AbstractTransparentApp { 36 public AbstractSimpleTransparentApp(String appId, ApplicationConfig cfg, ListenerProvider listenerProvider) { 37 super(appId, cfg, listenerProvider); 38 } 39 40 public final void run() { 41 Thread t = Thread.currentThread(); 42 ClassLoader cl = t.getContextClassLoader(); 43 44 try { 45 t.setContextClassLoader(getClass().getClassLoader()); 46 47 doIt(); 48 49 } catch (Throwable e) { 50 notifyError(e); 51 52 } finally { 53 t.setContextClassLoader(cl); 54 55 } 56 } 57 58 protected abstract void doIt() throws Throwable ; 59 60 } 61 62 protected static void assertDistributed(ClassPathXmlApplicationContext ctx, String beanName, Object bean) { 63 DistributableBeanFactory distributableBeanFactory = (DistributableBeanFactory) ctx.getBeanFactory(); 64 BeanContainer container = distributableBeanFactory.getBeanContainer(new ComplexBeanId(beanName)); 65 assertNotNull("Bean " + beanName + " is not in distributed cache", container); 66 assertSame("Bean " + beanName + " don't match instance from distributed cache", bean, container.getBean()); 67 } 68 69 } 70 | Popular Tags |