Clover Coverage Report - jmxmonitor 1.0.2
Coverage timestamp: Wed Feb 10 2010 07:36:51 GMT
../../../../img/srcFileCovDistChart8.png 50% of files have more coverage
31   113   8   4.43
0   75   0.26   7
7     1.14  
1    
 
  RegistryManager       Line # 43 31 0% 8 10 73.7% 0.7368421
 
  (2)
 
1    /*
2    * Copyright 2009 Ben Gidley
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10    * Unless required by applicable law or agreed to in writing, software
11    * distributed under the License is distributed on an "AS IS" BASIS,
12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13    * See the License for the specific language governing permissions and
14    * limitations under the License.
15    */
16   
17    package uk.co.gidley.jmxmonitor;
18   
19    import org.apache.commons.configuration.CompositeConfiguration;
20    import org.apache.commons.configuration.Configuration;
21    import org.apache.commons.configuration.ConfigurationException;
22    import org.apache.commons.configuration.PropertiesConfiguration;
23    import org.apache.tapestry5.ioc.IOCUtilities;
24    import org.apache.tapestry5.ioc.Registry;
25    import org.apache.tapestry5.ioc.RegistryBuilder;
26    import org.slf4j.Logger;
27    import org.slf4j.LoggerFactory;
28    import uk.co.gidley.jmxmonitor.services.InitialisationException;
29    import uk.co.gidley.jmxmonitor.services.JmxMonitorModule;
30    import uk.co.gidley.jmxmonitor.services.MainConfiguration;
31    import uk.co.gidley.jmxmonitor.services.ThreadManager;
32   
33    import java.io.IOException;
34    import java.io.PrintWriter;
35    import java.net.Socket;
36    import java.net.UnknownHostException;
37   
38    /**
39    * Start the registry and pass control to the manager service.
40    * <p/>
41    * This is seperate from the command line version to facilitate testing
42    */
 
43    public class RegistryManager {
44    private static final Logger logger = LoggerFactory.getLogger(RegistryManager.class);
45   
46    private String configurationFile;
47   
 
48  4 toggle public boolean isReadyToRun() {
49  4 return readyToRun;
50    }
51   
52    private boolean readyToRun = false;
53   
 
54  2 toggle public Registry getRegistry() {
55  2 return registry;
56    }
57   
58    private Registry registry;
59   
 
60  4 toggle public RegistryManager(String configurationFile) {
61  4 this.configurationFile = configurationFile;
62    }
63   
 
64  4 toggle public void start() throws InitialisationException {
65  4 RegistryBuilder registryBuilder = new RegistryBuilder();
66  4 IOCUtilities.addDefaultModules(registryBuilder);
67  4 registryBuilder.add(JmxMonitorModule.class);
68  4 registry = registryBuilder.build();
69  4 parseMainConfiguration(configurationFile, registry);
70  4 registry.performRegistryStartup();
71  4 ThreadManager threadManager = registry.getService(ThreadManager.class);
72  4 try {
73  4 readyToRun = true;
74  4 threadManager.initialise();
75    }
76    finally {
77  4 registry.shutdown();
78    }
79    }
80   
 
81  0 toggle public void stop() throws InitialisationException, IOException {
82  0 Configuration config = readConfiguration(configurationFile);
83  0 String stopKey = config.getString(ThreadManager.JMXMONITOR_STOPKEY);
84  0 int stopPort = config.getInt(ThreadManager.JMXMONITOR_STOPPORT);
85   
86  0 Socket socket = new Socket("localhost", stopPort);
87  0 PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
88  0 printWriter.write(stopKey);
89  0 printWriter.flush();
90   
91   
92    }
93   
 
94  4 toggle private static void parseMainConfiguration(String configurationFile,
95    Registry registry) throws InitialisationException {
96  4 MainConfiguration mainConfiguration = registry.getService(MainConfiguration.class);
97  4 CompositeConfiguration config = readConfiguration(configurationFile);
98  4 mainConfiguration.setConfiguration(config);
99    }
100   
 
101  4 toggle private static CompositeConfiguration readConfiguration(String configurationFile) throws InitialisationException {
102    // Read configuration file
103  4 CompositeConfiguration config = new CompositeConfiguration();
104  4 config.setThrowExceptionOnMissing(true);
105  4 try {
106  4 config.addConfiguration(new PropertiesConfiguration(configurationFile));
107    } catch (ConfigurationException e) {
108  0 logger.error("{}", e);
109  0 throw new InitialisationException(e);
110    }
111  4 return config;
112    }
113    }