1 5 package com.tctest; 6 7 import org.apache.commons.io.CopyUtils; 8 9 import com.tc.config.schema.builder.InstrumentedClassConfigBuilder; 10 import com.tc.config.schema.setup.FatalIllegalConfigurationChangeHandler; 11 import com.tc.config.schema.setup.L1TVSConfigurationSetupManager; 12 import com.tc.config.schema.setup.StandardTVSConfigurationSetupManagerFactory; 13 import com.tc.config.schema.test.InstrumentedClassConfigBuilderImpl; 14 import com.tc.config.schema.test.L2ConfigBuilder; 15 import com.tc.config.schema.test.TerracottaConfigBuilder; 16 import com.tc.object.config.StandardDSOClientConfigHelper; 17 import com.tc.util.Assert; 18 import com.tc.util.PortChooser; 19 import com.tctest.runner.AbstractTransparentApp; 20 import com.tctest.runner.TransparentAppConfig; 21 22 import java.io.File ; 23 import java.io.FileOutputStream ; 24 25 public class JMXHeartBeatTest extends TransparentTestBase { 26 27 private static final int NODE_COUNT = 1; 28 private int port; 29 private File configFile; 30 private int adminPort; 31 32 public JMXHeartBeatTest() { 33 } 35 36 public void doSetUp(TransparentTestIface t) throws Exception { 37 t.getTransparentAppConfig().setClientCount(NODE_COUNT); 38 t.initializeTestRunner(); 39 TransparentAppConfig cfg = t.getTransparentAppConfig(); 40 cfg.setAttribute(JMXHeartBeatTestApp.CONFIG_FILE, configFile.getAbsolutePath()); 41 cfg.setAttribute(JMXHeartBeatTestApp.PORT_NUMBER, String.valueOf(port)); 42 cfg.setAttribute(JMXHeartBeatTestApp.HOST_NAME, "localhost"); 43 cfg.setAttribute(JMXHeartBeatTestApp.JMX_PORT, String.valueOf(adminPort)); 44 } 45 46 protected Class getApplicationClass() { 47 return JMXHeartBeatTestApp.class; 48 } 49 50 public void setUp() throws Exception { 51 PortChooser pc = new PortChooser(); 52 port = pc.chooseRandomPort(); 53 adminPort = pc.chooseRandomPort(); 54 configFile = getTempFile("config-file.xml"); 55 writeConfigFile(); 56 StandardTVSConfigurationSetupManagerFactory factory = new StandardTVSConfigurationSetupManagerFactory( 57 new String [] { 58 StandardTVSConfigurationSetupManagerFactory.CONFIG_SPEC_ARGUMENT_WORD, 59 configFile 60 .getAbsolutePath() }, 61 true, 62 new FatalIllegalConfigurationChangeHandler()); 63 64 L1TVSConfigurationSetupManager manager = factory.createL1TVSConfigurationSetupManager(); 65 setUpControlledServer(factory, new StandardDSOClientConfigHelper(manager), port, adminPort, configFile.getAbsolutePath()); 66 doSetUp(this); 67 } 68 69 private synchronized void writeConfigFile() { 70 try { 71 TerracottaConfigBuilder builder = createConfig(port, adminPort); 72 FileOutputStream out = new FileOutputStream (configFile); 73 CopyUtils.copy(builder.toString(), out); 74 out.close(); 75 } catch (Exception e) { 76 throw Assert.failure("Can't create config file", e); 77 } 78 } 79 80 public static TerracottaConfigBuilder createConfig(int port, int adminPort) { 81 String testClassName = JMXHeartBeatTestApp.class.getName(); 82 String testClassSuperName = AbstractTransparentApp.class.getName(); 83 84 TerracottaConfigBuilder out = new TerracottaConfigBuilder(); 85 86 out.getServers().getL2s()[0].setDSOPort(port); 87 out.getServers().getL2s()[0].setJMXPort(adminPort); 88 out.getServers().getL2s()[0].setPersistenceMode(L2ConfigBuilder.PERSISTENCE_MODE_PERMANENT_STORE); 89 90 InstrumentedClassConfigBuilder instrumented1 = new InstrumentedClassConfigBuilderImpl(); 91 instrumented1.setClassExpression(testClassName + "*"); 92 93 InstrumentedClassConfigBuilder instrumented2 = new InstrumentedClassConfigBuilderImpl(); 94 instrumented2.setClassExpression(testClassSuperName + "*"); 95 96 out.getApplication().getDSO().setInstrumentedClasses( 97 new InstrumentedClassConfigBuilder[] { instrumented1, 98 instrumented2 }); 99 100 return out; 101 } 102 } 103 | Popular Tags |