Java tutorial
/* *Licensed to the Apache Software Foundation (ASF) under one *or more contributor license agreements. See the NOTICE file *distributed with this work for additional information *regarding copyright ownership. The ASF licenses this file *to you under the Apache License, Version 2.0 (the *"License"); you may not use this file except in compliance *with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * *Unless required by applicable law or agreed to in writing, *software distributed under the License is distributed on an *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *KIND, either express or implied. See the License for the *specific language governing permissions and limitations *under the License. */ package org.apache.stratos.usage.summary.helper; import org.apache.stratos.usage.summary.helper.util.DataAccessObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.analytics.hive.extension.AbstractHiveAnalyzer; import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /** * Helper class to set the timestamp of the last hourly summarization cycle in hive config. * This is needed to excluded the already summarized usage stats in the current summarization cycle. */ public class HourlyServiceStatsSummarizerHelper extends AbstractHiveAnalyzer { private static Log log = LogFactory.getLog(HourlyServiceStatsSummarizerHelper.class); public void execute() { log.info("Running custom analyzer for Stratos service stats hourly summarization."); try { String lastHourlyTimestampStr = DataAccessObject.getInstance() .getAndUpdateLastServiceStatsHourlyTimestamp(); Long lastHourlyTimestamp = Timestamp.valueOf(lastHourlyTimestampStr).getTime(); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:00"); String currentTsStr = formatter.format(new Date().getTime()); log.info("Running hourly service stats analytics from " + lastHourlyTimestampStr + " to " + currentTsStr); setProperty("last_hourly_ts", lastHourlyTimestamp.toString()); } catch (Exception e) { log.error("An error occurred while setting hour range for hourly service stats analysis. ", e); } } }