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    }