KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > ClusterMembershipEventJMXTest


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 ClusterMembershipEventJMXTest 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 ClusterMembershipEventJMXTest() {
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(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 JavaDoc getApplicationClass() {
46     return ClusterMembershipEventJMXTestApp.class;
47   }
48
49   public void setUp() throws Exception JavaDoc {
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 JavaDoc[] {
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 JavaDoc out = new FileOutputStream JavaDoc(configFile);
72       CopyUtils.copy(builder.toString(), out);
73       out.close();
74     } catch (Exception JavaDoc 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 JavaDoc testClassName = ClusterMembershipEventJMXTestApp.class.getName();
81     String JavaDoc 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