Changeset 898
- Timestamp:
- 10/10/06 08:49:20 (2 years ago)
- Files:
-
- trunk/source/org/kolaka/freecast/config/DefaultConfigurationLoader.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/NetworkIdentifier.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/http/HttpTracker.java (modified) (4 diffs)
- trunk/source/org/kolaka/freecast/tracker/http/HttpTrackerConfigurator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/statistics/JDBCParametersSetter.java (added)
- trunk/source/org/kolaka/freecast/tracker/statistics/JDBCTrackerStatisticsConsumer.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/tracker/statistics/JDBCTrackerStatisticsConsumerConstants.java (added)
- trunk/source/org/kolaka/freecast/tracker/statistics/TrackerStatisticsConsumerLoader.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/tracker/statistics/test/FileTrackerStatisticsConsumerTest.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/statistics/test/JDBCTrackerStatisticsConsumerTest.java (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/source/org/kolaka/freecast/config/DefaultConfigurationLoader.java
r893 r898 48 48 */ 49 49 public class DefaultConfigurationLoader implements ConfigurationLoader { 50 51 static { 52 AbstractConfiguration.setDefaultListDelimiter('#'); 53 } 50 54 51 55 private final String defaultsName; trunk/source/org/kolaka/freecast/tracker/NetworkIdentifier.java
r891 r898 51 51 52 52 public String toString() { 53 return Long.toHexString(value).to UpperCase();53 return Long.toHexString(value).toLowerCase(); 54 54 } 55 55 trunk/source/org/kolaka/freecast/tracker/http/HttpTracker.java
r893 r898 32 32 import org.kolaka.freecast.tracker.Main; 33 33 import org.kolaka.freecast.tracker.TrackerService; 34 import org.kolaka.freecast.tracker.statistics.TrackerStatisticsConsumer;35 34 import org.kolaka.freecast.tracker.statistics.TrackerStatisticsConsumerManager; 36 35 import org.kolaka.freecast.tracker.statistics.TrackerStatisticsSetProvider; … … 70 69 71 70 private boolean multiTracker; 71 72 private boolean statsServlet; 72 73 73 74 public void setMultiTracker(boolean multiTracker) { … … 112 113 } 113 114 114 try { 115 ServletHolder servletHolder = context.addServlet("Statistics", "/stats.xml", IceStatsServlet.class.getName()); 116 servletHolder.getServletContext().setAttribute(IceStatsServlet.STATSPROVIDER_ATTRIBUTE, tracker); 117 } catch (Exception e) { 118 throw new ControlException("Can't install the statistics servlet", e); 115 if (statsServlet) { 116 try { 117 ServletHolder servletHolder = context.addServlet("Statistics", "/stats.xml", IceStatsServlet.class.getName()); 118 servletHolder.getServletContext().setAttribute(IceStatsServlet.STATSPROVIDER_ATTRIBUTE, tracker); 119 } catch (Exception e) { 120 throw new ControlException("Can't install the statistics servlet", e); 121 } 119 122 } 120 123 … … 146 149 } 147 150 151 public void enableStatsServlet(boolean statsServlet) { 152 this.statsServlet = statsServlet; 153 } 154 148 155 } trunk/source/org/kolaka/freecast/tracker/http/HttpTrackerConfigurator.java
r893 r898 74 74 tracker.setConnectionAssistantServer(server); 75 75 } 76 77 HierarchicalConfiguration statisticsConfiguration = (HierarchicalConfiguration) configuration.subset("statistics"); 76 78 77 List consumerConfigurations = configuration.configurationsAt("statistics.consumer"); 79 tracker.enableStatsServlet(statisticsConfiguration.getBoolean("xml", true)); 80 tracker.getConsumerManager().setDelay(statisticsConfiguration.getInt("update", 60)); 81 82 TrackerStatisticsConsumerLoader consumerLoader = new TrackerStatisticsConsumerLoader(); 83 List consumerConfigurations = statisticsConfiguration.configurationsAt("consumer"); 78 84 for (Iterator it = consumerConfigurations.iterator(); it.hasNext();) { 79 85 Configuration consumerConfiguration = (Configuration) it.next(); 80 TrackerStatisticsConsumer consumer = new TrackerStatisticsConsumerLoader().load(consumerConfiguration);86 TrackerStatisticsConsumer consumer = consumerLoader.load(consumerConfiguration); 81 87 LogFactory.getLog(getClass()).debug("add consumer : " + consumer); 82 88 tracker.getConsumerManager().add(consumer); trunk/source/org/kolaka/freecast/tracker/statistics/JDBCTrackerStatisticsConsumer.java
r891 r898 33 33 import org.apache.commons.logging.LogFactory; 34 34 35 public class JDBCTrackerStatisticsConsumer implements TrackerStatisticsConsumer {35 public class JDBCTrackerStatisticsConsumer implements TrackerStatisticsConsumer, JDBCTrackerStatisticsConsumerConstants { 36 36 37 37 public static final String DEFAULT_REQUEST = "insert into statistics (timestamp,networkid,node_connections,rootnode_connections,listeners,rootnode) values (?,?,?,?,?,?);"; 38 39 40 public static final String[] DEFAULT_PARAMETERS = new String[] { 41 PARAMETER_TIMESTAMP, PARAMETER_NETWORKID, PARAMETER_NODECONNECTIONS, 42 PARAMETER_ROOTNODECONNECTIONS, PARAMETER_LISTENERS, PARAMETER_ROOTNODE 43 }; 44 38 45 private String user, password, url, driver; 39 46 … … 80 87 } 81 88 89 private String[] parameters = DEFAULT_PARAMETERS; 90 91 public void setParameters(String[] parameters) { 92 this.parameters = parameters; 93 } 94 95 private JDBCParametersSetter parametersSetter; 96 82 97 private Connection connection; 83 98 99 public void setConnection(Connection connection) { 100 this.connection = connection; 101 } 102 84 103 public void process(Date date, TrackerStatistics statistics) { 104 if (parametersSetter == null) { 105 parametersSetter = new JDBCParametersSetter(parameters); 106 } 107 85 108 LogFactory.getLog(getClass()).debug("update database with " + statistics); 86 109 try { 87 110 Connection connection = getConnection(); 88 111 PreparedStatement statement = connection.prepareStatement(request); 89 statement.setTimestamp(1, new java.sql.Timestamp(date.getTime())); 90 statement.setString(2, statistics.getNetworkId() != null ? statistics.getNetworkId().toString() : null); 91 statement.setInt(3, statistics.getNodeConnections()); 92 statement.setInt(4, statistics.getRootNodeConnections()); 93 statement.setInt(5, statistics.getListenerConnected()); 94 statement.setBoolean(6, statistics.isRootNodePresents()); 112 parametersSetter.setParameters(statement, date, statistics); 95 113 statement.execute(); 96 114 } catch (SQLException e) { … … 115 133 } 116 134 117 118 135 } trunk/source/org/kolaka/freecast/tracker/statistics/TrackerStatisticsConsumerLoader.java
r891 r898 26 26 import java.io.File; 27 27 28 import org.apache.commons.configuration.AbstractConfiguration; 28 29 import org.apache.commons.configuration.Configuration; 29 30 import org.apache.commons.configuration.ConfigurationException; 31 import org.apache.commons.lang.StringUtils; 30 32 31 33 public class TrackerStatisticsConsumerLoader { … … 45 47 consumer.setPassword(configuration.getString("password")); 46 48 consumer.setDriver(configuration.getString("driver")); 49 47 50 consumer.setRequest(configuration.getString("request", JDBCTrackerStatisticsConsumer.DEFAULT_REQUEST)); 51 52 String parameters = configuration.getString("parameters"); 53 if (parameters != null) { 54 consumer.setParameters(StringUtils.split(parameters,',')); 55 } 48 56 return consumer; 49 57 } else if (consumerClass.equals("exec")) { trunk/source/org/kolaka/freecast/tracker/statistics/test/FileTrackerStatisticsConsumerTest.java
r896 r898 39 39 public class FileTrackerStatisticsConsumerTest extends TestCase { 40 40 41 private File file; 42 private FileTrackerStatisticsConsumer consumer; 43 44 protected void setUp() throws Exception { 45 super.setUp(); 46 file = File.createTempFile(getClass().getName(), "test"); 47 48 consumer = new FileTrackerStatisticsConsumer(); 49 consumer.setFile(file); 50 } 51 52 protected void tearDown() throws Exception { 53 super.tearDown(); 54 file.delete(); 55 } 56 41 57 public void testProcess() throws IOException { 42 File file = File.createTempFile(getClass().getName(), "test");43 FileTrackerStatisticsConsumer consumer = new FileTrackerStatisticsConsumer();44 consumer.setFile(file);45 46 58 DefaultTrackerStatistics stats = new DefaultTrackerStatistics(1, 2, true, 3); 47 59 stats.setNetworkId(NetworkIdentifier.getInstance("0"));
