001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.metrics.persistent; 005 006 import java.io.IOException; 007 import java.sql.SQLException; 008 import java.util.HashMap; 009 010 import biz.hammurapi.config.MapContext; 011 import biz.hammurapi.sql.SQLProcessor; 012 import biz.hammurapi.sql.hypersonic.HypersonicTmpDataSource; 013 014 015 /** 016 * @author Pavel Vlasov 017 * @version $Revision: 1.1 $ 018 */ 019 public class HypersonicTmpSliceConsumer extends PersistingSliceConsumer { 020 021 /** 022 * @param tick 023 * @param keepMeasurements 024 * @param maxQueue 025 * @param root 026 * @throws SQLException 027 * @throws IOException 028 * @throws ClassNotFoundException 029 */ 030 public HypersonicTmpSliceConsumer ( 031 String category, 032 long history, 033 long maintenanceInterval 034 ) throws ClassNotFoundException, IOException, SQLException { 035 super(category, history, maintenanceInterval, new SQLProcessor(createDataSource(), new MapContext(new HashMap())), null); 036 dataSource=(HypersonicTmpDataSource) dstl.get(); 037 } 038 039 private HypersonicTmpDataSource dataSource; 040 041 private static ThreadLocal dstl=new ThreadLocal(); 042 043 private static HypersonicTmpDataSource createDataSource() throws ClassNotFoundException, IOException, SQLException { 044 HypersonicTmpDataSource ret = new HypersonicTmpDataSource("com/pavelvlasov/metrics/persistent/HypersonicPersistingSliceConsumer.sql"); 045 dstl.set(ret); 046 return ret; 047 } 048 049 public HypersonicTmpDataSource getDataSource() { 050 return dataSource; 051 } 052 }