View Javadoc

1   package cz.cuni.amis.pogamut.base.utils.logging.network;
2   
3   import org.junit.Test;
4   
5   import cz.cuni.amis.pogamut.base.agent.jmx.proxy.AgentJMXProxy;
6   import cz.cuni.amis.pogamut.base.agent.state.level1.IAgentStateDown;
7   import cz.cuni.amis.pogamut.base.utils.Pogamut;
8   import cz.cuni.amis.pogamut.base.utils.logging.NetworkLogManager;
9   
10  public class Test05_JMXEnabledNetworkLogging extends JMXNetworkLoggingTest {
11  
12  	@Test
13  	public void test() {
14  
15  		try {
16  			
17  			double logicFrequency = 5;
18  			int logsPerCycle = 2000;
19  			int lifeTimeSeconds = 2;
20  			int logicCycles = (int)Math.ceil(logicFrequency * lifeTimeSeconds);
21  			int totalLogsOfOneCategory = logsPerCycle * logicCycles;
22  			
23  			JMXNetworkLoggingAgent agent = createNewAgentJMX(logicFrequency, logsPerCycle, logicCycles);
24  			
25  			System.out.println("[INFO] Starting agent... ");
26  			
27  			agent.start();
28  			
29  			System.out.println("[INFO] Enabling agent JMX... ");
30  			
31  			String agentAddress = agent.getJMX().enableJMX();	
32  			
33  			System.out.println("[INFO] Creating AgentJMXProxy... ");
34  			
35  	        AgentJMXProxy agentProxy = new AgentJMXProxy(agentAddress);
36  	        
37  	        System.out.println("[INFO] Enabling network logging via JMX...");
38  	        
39  	        agentProxy.getLogger().addDefaultNetworkHandler();
40  	        
41  			try {
42  				
43  				System.out.println("[INFO] Creating NetworkLogClient...");
44  				
45  				CheckNetworkLogClient logClient1 = 
46  					new CheckNetworkLogClient(
47  							"LogClient1-" + agent.getName(),
48  							"localhost", 
49  							NetworkLogManager.getNetworkLogManager().getLoggerPort(), 
50  							agent.getComponentId().getToken()
51  					);
52  				
53  				System.out.println("[INFO] Starting NetworkLogClient...");
54  				
55  				logClient1.start();
56  				
57  				try {
58  					System.out.println("[INFO]  Dropping agent logic latch, starting to send logs...");
59  					agent.getLogicLatch().countDown();
60  					
61  					agent.awaitState(IAgentStateDown.class);
62  					logClient1.getRunning().waitFor(1000, false);
63  					logClient1.getThroughput().check();
64  					
65  					checkAgent(agent);
66  					checkLogClient(logClient1, totalLogsOfOneCategory);
67  					
68  				} finally {
69  					if (logClient1.getRunning().getFlag()) {
70  						logClient1.stop();
71  					}
72  				}				
73  			} finally {
74  				if (agent.notInState(IAgentStateDown.class)) agent.kill();
75  			}
76  			
77  			
78  			
79  		} finally {
80  			Pogamut.getPlatform().close();
81  		}
82  		
83  		System.out.println("---/// TEST OK ///---");
84  	}	
85  	
86  }