KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > JMXHeartBeatTest


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

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 JavaDoc;
23 import java.io.FileOutputStream JavaDoc;
24
25 public class JMXHeartBeatTest extends TransparentTestBase {
26
27   private static final int NODE_COUNT = 1;
28   private int port;
29   private File JavaDoc configFile;
30   private int adminPort;
31
32   public JMXHeartBeatTest() {
33     //this.disableAllUntil("2007-02-27");
34
}
35
36   public void doSetUp(TransparentTestIface t) throws Exception JavaDoc {
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 JavaDoc getApplicationClass() {
47     return JMXHeartBeatTestApp.class;
48   }
49
50   public void setUp() throws Exception JavaDoc {
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 JavaDoc[] {
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 JavaDoc out = new FileOutputStream JavaDoc(configFile);
73       CopyUtils.copy(builder.toString(), out);
74       out.close();
75     } catch (Exception JavaDoc 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 JavaDoc testClassName = JMXHeartBeatTestApp.class.getName();
82     String JavaDoc 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