/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.terracotta.quartz.tests.rejoin; import com.tc.test.config.model.TestConfig; import java.util.Properties; import org.terracotta.quartz.AbstractTerracottaJobStore; import org.terracotta.quartz.tests.AbstractStandaloneTest; import org.terracotta.quartz.tests.ClientBase; import org.terracotta.test.util.TestBaseUtil; import org.terracotta.tests.base.AbstractClientBase; /** * * @author cdennis */ public abstract class AbstractRejoinTest extends AbstractStandaloneTest { public AbstractRejoinTest(TestConfig testConfig, Class<? extends AbstractClientBase>... classes) { super(testConfig, classes); testConfig.setNumOfGroups(1); testConfig.addTcProperty("l2.l1reconnect.enabled", "false"); TestBaseUtil.enabledL1ProxyConnection(testConfig); } public static abstract class AbstractRejoinClient extends ClientBase { public AbstractRejoinClient(String[] args) { super(args); } @Override public void addSchedulerProperties(Properties properties) { super.addSchedulerProperties(properties); properties.remove(AbstractTerracottaJobStore.TC_CONFIGURL_PROP); try { properties.setProperty(AbstractTerracottaJobStore.TC_CONFIG_PROP, getTestControlMbean().getTsaProxyTcConfig()); } catch (Exception e) { throw new RuntimeException(e); } properties.setProperty(AbstractTerracottaJobStore.TC_REJOIN_PROP, "true"); } @Override protected boolean isSynchWrite() { return true; } @Override public String getTerracottaUrl() { return getTestControlMbean().getTsaProxyTerracottaUrl(); } @Override public Properties getToolkitProps() { Properties props = super.getToolkitProps(); props.setProperty("rejoin", "true"); try { props.setProperty("tcConfigSnippet", getTestControlMbean().getTsaProxyTcConfig()); } catch (Exception e) { throw new RuntimeException(e); } return props; } public void initiateRejoin() throws Exception { getTestControlMbean().stopTsaProxy(0); getTestControlMbean().startTsaProxy(0); } public void completeRejoin() throws Exception { getTestControlMbean().startTsaProxy(0); } } }