/** * Mad-Advertisement * Copyright (C) 2011 Thorsten Marx <thmarx@gmx.net> * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package net.mad.ads.base.api.track.impl.local.bdb.example; import java.util.Calendar; import java.util.List; import java.util.Locale; import net.mad.ads.base.api.BaseContext; import net.mad.ads.base.api.EmbeddedBaseContext; import net.mad.ads.base.api.exception.ServiceException; import net.mad.ads.base.api.track.Criterion; import net.mad.ads.base.api.track.TrackingService; import net.mad.ads.base.api.track.events.ClickTrackEvent; import net.mad.ads.base.api.track.events.EventAttribute; import net.mad.ads.base.api.track.events.EventType; import net.mad.ads.base.api.track.events.ImpressionTrackEvent; import net.mad.ads.base.api.track.events.TrackEvent; import net.mad.ads.base.api.track.impl.local.bdb.BDBTrackingService; import net.mad.ads.base.api.utils.DateHelper; /** * * @author tmarx */ public class BDBTest { public static void main(String[] args) throws Exception { BaseContext context = new EmbeddedBaseContext(); context.put(EmbeddedBaseContext.EMBEDDED_DB_DIR, "/tmp/bdb/track"); TrackingService ts = new BDBTrackingService(); ts.open(context); trackData(ts); Calendar from = Calendar.getInstance(Locale.GERMANY); from.set(Calendar.MONTH, Calendar.JANUARY); from.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); from.set(Calendar.HOUR_OF_DAY, 0); from.set(Calendar.MINUTE, 0); from.set(Calendar.SECOND, 0); from.set(Calendar.MILLISECOND, 0); Calendar to = Calendar.getInstance(Locale.GERMANY); to.set(Calendar.MONTH, Calendar.JANUARY); to.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // to.set(Calendar.HOUR_OF_DAY, 23); // to.set(Calendar.MINUTE, 59); // to.set(Calendar.SECOND, 59); // to.set(Calendar.MILLISECOND, 999); to.set(Calendar.HOUR_OF_DAY, 0); to.set(Calendar.MINUTE, 0); to.set(Calendar.SECOND, 0); to.set(Calendar.MILLISECOND, 0); to.add(Calendar.DAY_OF_WEEK, 1); // System.out.println(); // System.out.println(DateHelper.format(from.getTime())); // System.out.println(DateHelper.format(to.getTime())); // System.out.println(); // System.out.println(ts.countClicks("b1", from.getTime(), // to.getTime())); // System.out.println(ts.countImpressions("b1", from.getTime(), // to.getTime())); List<TrackEvent> list = ts.list(new Criterion(Criterion.Criteria.Site, "demo Site"), null, from.getTime(), to.getTime()); System.out.println(list.size()); System.out.println(ts.count(new Criterion(Criterion.Criteria.Banner, "b1"), EventType.CLICK, from.getTime(), to.getTime())); System.out.println(ts.count(new Criterion(Criterion.Criteria.Banner, "b1"), EventType.IMPRESSION, from.getTime(), to.getTime())); ts.close(); } private static void trackData(TrackingService ts) throws ServiceException { Calendar created = Calendar.getInstance(Locale.GERMANY); created.set(Calendar.MONTH, Calendar.JANUARY); created.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); TrackEvent event = new ClickTrackEvent(); event.put(EventAttribute.TIME, DateHelper.format(created.getTime())); event.setTime(created.getTime().getTime()); // System.out.println(DateHelper.format(created.getTime())); event.setSite("demo Site"); event.put(EventAttribute.BANNER_ID, "b1"); event.setUser("user1"); ts.track(event); created.add(Calendar.HOUR_OF_DAY, 1); event = new ClickTrackEvent(); event.put(EventAttribute.TIME, DateHelper.format(created.getTime())); event.setTime(created.getTime().getTime()); // System.out.println(DateHelper.format(created.getTime())); event.setSite("demo Site"); event.put(EventAttribute.BANNER_ID, "b1"); event.setUser("user1"); ts.track(event); created.add(Calendar.HOUR_OF_DAY, 1); event = new ImpressionTrackEvent(); event.put(EventAttribute.TIME, DateHelper.format(created.getTime())); event.setTime(created.getTime().getTime()); // System.out.println(DateHelper.format(created.getTime())); event.setSite("demo Site"); event.put(EventAttribute.BANNER_ID, "b1"); event.setUser("user1"); ts.track(event); event.setUser("user2"); ts.track(event); } }