1 package org.apache.helix;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.helix.mock.participant.DummyProcess.DummyLeaderStandbyStateModelFactory;
23 import org.apache.helix.mock.participant.DummyProcess.DummyOnlineOfflineStateModelFactory;
24 import org.apache.helix.mock.participant.DummyProcess.DummyStateModelFactory;
25 import org.apache.helix.participant.StateMachineEngine;
26 import org.apache.log4j.Logger;
27
28
29 public class DummyProcessThread implements Runnable
30 {
31 private static final Logger LOG = Logger.getLogger(DummyProcessThread.class);
32
33 HelixManager _manager;
34 String _instanceName;
35
36 public DummyProcessThread(HelixManager manager, String instanceName)
37 {
38 _manager = manager;
39 _instanceName = instanceName;
40 }
41
42 @Override
43 public void run()
44 {
45 try
46 {
47 DummyStateModelFactory stateModelFactory = new DummyStateModelFactory(0);
48
49
50 StateMachineEngine stateMach = _manager.getStateMachineEngine();
51 stateMach.registerStateModelFactory("MasterSlave", stateModelFactory);
52
53 DummyLeaderStandbyStateModelFactory stateModelFactory1 = new DummyLeaderStandbyStateModelFactory(10);
54 DummyOnlineOfflineStateModelFactory stateModelFactory2 = new DummyOnlineOfflineStateModelFactory(10);
55 stateMach.registerStateModelFactory("LeaderStandby", stateModelFactory1);
56 stateMach.registerStateModelFactory("OnlineOffline", stateModelFactory2);
57
58
59
60
61 _manager.connect();
62 Thread.currentThread().join();
63 }
64 catch (InterruptedException e)
65 {
66 String msg =
67 "participant:" + _instanceName + ", " + Thread.currentThread().getName()
68 + " interrupted";
69 LOG.info(msg);
70
71 }
72 catch (Exception e)
73 {
74
75 e.printStackTrace();
76 }
77 }
78
79 }