24,24 → 24,25 |
|
/** |
* Saves a group of clicks in database |
* @param map with link clicks |
* @param year of group |
* |
* @param map with link clicks |
* @param year of group |
* @param month of group |
* @param day of group |
* @param day of group |
* @throws ServiceException on error |
*/ |
public void run(HashMap<String, UrlStatFilter.IntegerContainer> map, Integer year, Integer month, Integer day) throws ServiceException |
{ |
if(map.size() == 0) |
if (map.size() == 0) |
return; |
Set<Map.Entry<String,UrlStatFilter.IntegerContainer>> set = map.entrySet(); |
for(Map.Entry<String,UrlStatFilter.IntegerContainer> entry: set) |
Set<Map.Entry<String, UrlStatFilter.IntegerContainer>> set = map.entrySet(); |
for (Map.Entry<String, UrlStatFilter.IntegerContainer> entry : set) |
{ |
String relativePath = entry.getKey(); |
UrlStatFilter.IntegerContainer ic = entry.getValue(); |
|
|
UrlStatImpl urlStat = (UrlStatImpl) DaoFactory.getUrlStatDaoImpl().loadOrNullLockUpgrade(relativePath); |
if(urlStat == null) |
if (urlStat == null) |
{ |
logger.info("url:" + relativePath + " does not exist... creating"); |
urlStat = DomainObjectFactory.createUrlStatImpl(); |
50,9 → 51,11 |
DaoFactory.getUrlStatDaoImpl().save(urlStat); |
} |
|
UrlStatYearId urlStatYearId = new UrlStatYearId(year,urlStat); |
UrlStatYearId urlStatYearId = new UrlStatYearId(); |
urlStatYearId.setUrlStat(urlStat); |
urlStatYearId.setYear(year); |
UrlStatYearImpl urlStatYear = (UrlStatYearImpl) DaoFactory.getUrlStatYearDaoImpl().loadOrNullLockUpgrade(urlStatYearId); |
if(urlStatYear == null) |
if (urlStatYear == null) |
{ |
logger.info("url:" + relativePath + " first year call does not exist... creating"); |
urlStatYear = DomainObjectFactory.createUrlStatYearImpl(); |
62,25 → 65,33 |
DaoFactory.getUrlStatDaoImpl().reattach(urlStat); |
} |
|
UrlStatMonthId urlStatMonthId = new UrlStatMonthId(month,urlStatYear); |
UrlStatMonthId urlStatMonthId = new UrlStatMonthId(); |
urlStatMonthId.setMonth(month); |
urlStatMonthId.setUrlStatYear(urlStatYear); |
UrlStatMonthImpl urlStatMonth = (UrlStatMonthImpl) DaoFactory.getUrlStatMonthDaoImpl().loadOrNullLockUpgrade(urlStatMonthId); |
if(urlStatMonth == null) |
if (urlStatMonth == null) |
{ |
logger.info("url:" + relativePath + " first month call does not exist... creating"); |
urlStatMonth = DomainObjectFactory.createUrlStatMonthImpl(); |
urlStatMonth.setId(urlStatMonthId); |
urlStatMonth.setDate(new MyCalendar(year,month,1).getTime()); |
urlStatMonth.setDate(new MyCalendar(year, month, 1).getTime()); |
urlStatYear.addMonth(urlStatMonth); |
DaoFactory.getUrlStatMonthDaoImpl().save(urlStatMonth); |
DaoFactory.getUrlStatYearDaoImpl().reattach(urlStatYear); |
} |
UrlStatDayImpl urlStatDay = (UrlStatDayImpl) DaoFactory.getUrlStatDayDaoImpl().loadOrNullLockUpgrade(new UrlStatDayId(day, urlStatMonth)); |
if(urlStatDay == null) |
UrlStatDayId urlStatDayId = new UrlStatDayId(); |
urlStatDayId.setDay(day); |
urlStatDayId.setUrlStatMonth(urlStatMonth); |
UrlStatDayImpl urlStatDay = (UrlStatDayImpl) DaoFactory.getUrlStatDayDaoImpl().loadOrNullLockUpgrade(urlStatDayId); |
if (urlStatDay == null) |
{ |
logger.info("url:" + relativePath + " first day call does not exist... creating"); |
urlStatDay = DomainObjectFactory.createUrlStatDayImpl(); |
urlStatDay.setId(new UrlStatDayId(day,urlStatMonth)); |
urlStatDay.setDate(new MyCalendar(year,month,day).getTime()); |
UrlStatDayId urlStatDayId2 = new UrlStatDayId(); |
urlStatDayId2.setDay(day); |
urlStatDayId2.setUrlStatMonth(urlStatMonth); |
urlStatDay.setId(urlStatDayId2); |
urlStatDay.setDate(new MyCalendar(year, month, day).getTime()); |
urlStatMonth.addDay(urlStatDay); |
DaoFactory.getUrlStatDayDaoImpl().save(urlStatDay); |
} |
94,36 → 105,37 |
|
/** |
* Simple method to create links clicks from year 2003 until now |
* |
* @param args -- |
* @throws ServiceException -- |
*/ |
public static void main(String[] args) throws ServiceException |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
HashMap<String,UrlStatFilter.IntegerContainer> map = new HashMap<String,UrlStatFilter.IntegerContainer>(); |
HashMap<String, UrlStatFilter.IntegerContainer> map = new HashMap<String, UrlStatFilter.IntegerContainer>(); |
UrlStatFilter.IntegerContainer ic = new UrlStatFilter.IntegerContainer(3); |
map.put("/proxy/layout4/estgp/escola/EstruturaOrganizativa/CCientifico.asp",ic); |
map.put("/proxy/layout4/estgp/escola/EstruturaOrganizativa/CCientifico.asp", ic); |
MyCalendar now = new MyCalendar(); |
MyCalendar c = new MyCalendar(2003,1,1,11,11,11); |
MyCalendar c = new MyCalendar(2003, 1, 1, 11, 11, 11); |
Random r = new Random(now.getTimeInMillis()); |
UrlStatService service = new UrlStatService(); |
int commit = 0; |
do |
{ |
ic.setI(r.nextInt(200)); |
service.run(map,c.getYear(),c.getMonth(),c.getDay()); |
service.run(map, c.getYear(), c.getMonth(), c.getDay()); |
c.setTimeInMillis(c.getTimeInMillis() + (24 * 60 * 60 * 1000)); |
|
if(commit++ > 100) |
if (commit++ > 100) |
{ |
commit = 0; |
AbstractDao.getCurrentSession().getTransaction().commit(); |
AbstractDao.getCurrentSession().beginTransaction(); |
} |
} |
while(!(c.getYear() == now.getYear() && c.getMonth() == now.getMonth() && c.getDay() == now.getDay())); |
while (!(c.getYear() == now.getYear() && c.getMonth() == now.getMonth() && c.getDay() == now.getDay())); |
ic.setI(r.nextInt(200)); |
service.run(map,c.getYear(),c.getMonth(),c.getDay()); |
service.run(map, c.getYear(), c.getMonth(), c.getDay()); |
c.setTimeInMillis(c.getTimeInMillis() + (24 * 60 * 60 * 1000)); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |