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 ClusterMembershipEventJMXTest 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 ClusterMembershipEventJMXTest() { 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(ClusterMembershipEventJMXTestApp.CONFIG_FILE, configFile.getAbsolutePath()); 41 cfg.setAttribute(ClusterMembershipEventJMXTestApp.PORT_NUMBER, String.valueOf(port)); 42 cfg.setAttribute(ClusterMembershipEventJMXTestApp.HOST_NAME, "localhost"); 43 } 44 45 protected Class getApplicationClass() { 46 return ClusterMembershipEventJMXTestApp.class; 47 } 48 49 public void setUp() throws Exception { 50 PortChooser pc = new PortChooser(); 51 port = pc.chooseRandomPort(); 52 adminPort = pc.chooseRandomPort(); 53 configFile = getTempFile("config-file.xml"); 54 writeConfigFile(); 55 StandardTVSConfigurationSetupManagerFactory factory = new StandardTVSConfigurationSetupManagerFactory( 56 new String [] { 57 StandardTVSConfigurationSetupManagerFactory.CONFIG_SPEC_ARGUMENT_WORD, 58 configFile 59 .getAbsolutePath() }, 60 true, 61 new FatalIllegalConfigurationChangeHandler()); 62 63 L1TVSConfigurationSetupManager manager = factory.createL1TVSConfigurationSetupManager(); 64 setUpControlledServer(factory, new StandardDSOClientConfigHelper(manager), port, adminPort, configFile.getAbsolutePath()); 65 doSetUp(this); 66 } 67 68 private synchronized void writeConfigFile() { 69 try { 70 TerracottaConfigBuilder builder = createConfig(port, adminPort); 71 FileOutputStream out = new FileOutputStream (configFile); 72 CopyUtils.copy(builder.toString(), out); 73 out.close(); 74 } catch (Exception e) { 75 throw Assert.failure("Can't create config file", e); 76 } 77 } 78 79 public static TerracottaConfigBuilder createConfig(int port, int adminPort) { 80 String testClassName = ClusterMembershipEventJMXTestApp.class.getName(); 81 String testClassSuperName = AbstractTransparentApp.class.getName(); 82 83 TerracottaConfigBuilder out = new TerracottaConfigBuilder(); 84 85 out.getServers().getL2s()[0].setDSOPort(port); 86 out.getServers().getL2s()[0].setJMXPort(adminPort); 87 out.getServers().getL2s()[0].setPersistenceMode(L2ConfigBuilder.PERSISTENCE_MODE_PERMANENT_STORE); 88 89 InstrumentedClassConfigBuilder instrumented1 = new InstrumentedClassConfigBuilderImpl(); 90 instrumented1.setClassExpression(testClassName + "*"); 91 92 InstrumentedClassConfigBuilder instrumented2 = new InstrumentedClassConfigBuilderImpl(); 93 instrumented2.setClassExpression(testClassSuperName + "*"); 94 95 out.getApplication().getDSO().setInstrumentedClasses( 96 new InstrumentedClassConfigBuilder[] { instrumented1, 97 instrumented2 }); 98 99 return out; 100 } 101 } 102
| Popular Tags
|