Author: bpoussin Date: 2010-12-09 10:30:56 +0100 (Thu, 09 Dec 2010) New Revision: 585 Url: http://nuiton.org/repositories/revision/wikitty/585 Log: use TimeTrace from nuiton-utils Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-12-09 09:29:49 UTC (rev 584) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-12-09 09:30:56 UTC (rev 585) @@ -47,6 +47,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.TimeTrace; import org.nuiton.wikitty.entities.WikittyTreeNode; import org.nuiton.wikitty.search.operators.Element; @@ -69,30 +70,8 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(WikittyProxy.class); - static public class CallStat { - long callNumber = 0; - long callTime = 0; + static protected TimeTrace timeTrace = new TimeTrace(); - @Override - public String toString() { - String callTimeString = - DurationFormatUtils.formatDuration(callTime, "s'.'S"); - String avgTimeString = - DurationFormatUtils.formatDuration((callTime/ callNumber), "s'.'S"); - return String.format("total call %s, total time %s, avg time %s", - callNumber, callTimeString, avgTimeString); - } - - } - - /** time to trigger log time in info level */ - protected long timeToLogInfo = 1000; - /** time to trigger log time in warn level */ - protected long timeToLogWarn = 3000; - - /** for each method of all proxies, keep number of call */ - static protected Map<String, CallStat> callCount = new HashMap<String, CallStat>(); - /** Delegated wikitty service. */ protected WikittyServiceEnhanced wikittyService; @@ -111,10 +90,12 @@ public WikittyProxy(ApplicationConfig config) { if (config != null) { - timeToLogInfo = config.getOptionAsInt(WikittyConfig.WikittyOption. + long timeToLogInfo = config.getOptionAsInt(WikittyConfig.WikittyOption. WIKITTY_PROXY_TIME_TO_LOG_INFO.getKey()); - timeToLogWarn = config.getOptionAsInt(WikittyConfig.WikittyOption. + long timeToLogWarn = config.getOptionAsInt(WikittyConfig.WikittyOption. WIKITTY_PROXY_TIME_TO_LOG_WARN.getKey()); + timeTrace.setTimeToLogInfo(timeToLogInfo); + timeTrace.setTimeToLogWarn(timeToLogWarn); } } @@ -133,52 +114,28 @@ setWikittyService(wikittyService); } - static public Map<String, CallStat> getCallCount() { - return callCount; + static public TimeTrace getTimeTrace() { + return timeTrace; } - protected void traceTime(long start, long stop, String methodName) { - long time = stop - start; - - // incremente le nombre d'appel pour cette methode - CallStat calls = callCount.get(methodName); - if (calls == null) { - // is not thread safe, but if we lose one or two call, is not importante - calls = new CallStat(); - callCount.put(methodName, calls); - } - calls.callNumber++; - calls.callTime += time; - - // affiche le temps de l'appel si necessaire - String timeString = DurationFormatUtils.formatDuration(time, "s'.'S"); - String msg = String.format("[%s] for method %s (%s)", - timeString, methodName, calls); - - if (time > timeToLogWarn && log.isWarnEnabled()) { - log.warn(msg); - } else if (time > timeToLogInfo && log.isInfoEnabled()) { - log.info(msg); - } else if (log.isDebugEnabled()) { - log.debug(msg); - } - + static public Map<String, TimeTrace.CallStat> getCallCount() { + return timeTrace.getCallCount(); } public String login(String login, String password) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); String result = wikittyService.login(login, password); setSecurityToken(result); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "login"); + + timeTrace.add(start, "login"); return result; } public void logout() { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); wikittyService.logout(securityToken); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "logout"); + + timeTrace.add(start, "logout"); } public String getSecurityToken() { @@ -206,11 +163,11 @@ * @return new instance of object wanted */ public <E extends BusinessEntity> E cast(BusinessEntity source, Class<E> target) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); E result = WikittyUtil.newInstance( securityToken, wikittyService, target, ((BusinessEntityImpl)source).getWikitty()); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "cast"); + + timeTrace.add(start, "cast"); return result; } @@ -220,12 +177,12 @@ return e; } public Wikitty store(Wikitty w) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyEvent resp = wikittyService.store(securityToken, w); // update object resp.update(w); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "store"); + + timeTrace.add(start, "store"); return w; } @@ -238,7 +195,7 @@ * @return updated objects list */ public <E extends BusinessEntity> List<E> store(List<E> objets) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); // prepare data to send to service List<Wikitty> wikitties = new ArrayList<Wikitty>(objets.size()); for (E e : objets) { @@ -253,8 +210,8 @@ for (Wikitty w : wikitties) { resp.update(w); } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "store<list>"); + + timeTrace.add(start, "store<list>"); return objets; } @@ -270,7 +227,7 @@ */ public <E extends BusinessEntity> E restore(Class<E> clazz, String id, boolean checkExtension) { try { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); E result = null; if (id != null) { HashSet<String> extNames = null; @@ -300,8 +257,8 @@ } } } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restore<Business>"); + + timeTrace.add(start, "restore<Business>"); return result; } catch (SecurityException eee) { throw eee; @@ -317,13 +274,13 @@ * @return wikitty entity with specified id or {@code null} if entity can't be found */ public Wikitty restore(String id) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Wikitty result = null; if (id != null) { result = wikittyService.restore(securityToken, id); } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restore"); + + timeTrace.add(start, "restore"); return result; } @@ -351,7 +308,7 @@ */ public <E extends BusinessEntity> List<E> restore( Class<E> clazz, List<String> id, boolean checkExtension) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); List<Wikitty> wikitties = wikittyService.restore(securityToken, id); List<E> result = new ArrayList<E>(); @@ -384,8 +341,8 @@ } result.add(dto); } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restore<list>"); + + timeTrace.add(start, "restore<list>"); return result; } @@ -395,17 +352,17 @@ } public void delete(String id) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); wikittyService.delete(securityToken, id); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "delete"); + + timeTrace.add(start, "delete"); } public void delete(Collection<String> ids) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); wikittyService.delete(securityToken, ids); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "delete<list>"); + + timeTrace.add(start, "delete<list>"); } /** @@ -419,7 +376,7 @@ */ public <E extends BusinessEntityImpl> PagedResult<E> findAllByExample(E e, int firstIndex, int endIndex, String ... fieldFacet ) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria() .setFirstIndex(firstIndex).setEndIndex(endIndex) @@ -431,8 +388,8 @@ // restriction on extension PagedResult<E> result = (PagedResult<E>)pagedResult.cast( this, e.getClass(), true); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findAllByExample<limit>"); + + timeTrace.add(start, "findAllByExample<limit>"); return result; } @@ -443,7 +400,7 @@ * @return */ public <E extends BusinessEntityImpl> E findByExample(E e) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria(); Wikitty w = wikittyService.findByCriteria(securityToken, criteria); @@ -452,8 +409,8 @@ result = (E) WikittyUtil.newInstance( securityToken, wikittyService, e.getClass(), w); } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findByExample"); + + timeTrace.add(start, "findByExample"); return result; } @@ -469,7 +426,7 @@ */ public <E extends BusinessEntity> PagedResult<E> findAllByCriteria( Class<E> clazz, Criteria criteria) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); // newInstance only return BusinessEntityWikittyImpl BusinessEntityImpl sample = @@ -524,22 +481,22 @@ // on extension PagedResult<E> result = (PagedResult<E>)pagedResult.cast( this, sample.getClass(), true); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findAllByCriteria<Business>"); + + timeTrace.add(start, "findAllByCriteria<Business>"); return result; } public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); PagedResult<String> resultId = wikittyService.findAllByCriteria(securityToken, criteria); PagedResult<Wikitty> result = resultId.cast(securityToken, wikittyService); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findAllByCriteria"); + + timeTrace.add(start, "findAllByCriteria"); return result; } public <E extends BusinessEntity> E findByCriteria(Class<E> clazz, Criteria criteria) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); BusinessEntityImpl sample = (BusinessEntityImpl)WikittyUtil.newInstance(clazz); @@ -553,24 +510,24 @@ Wikitty w = wikittyService.findByCriteria(securityToken, criteria); E result = WikittyUtil.newInstance( securityToken, wikittyService, clazz, w); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findByCriteria<Business>"); + + timeTrace.add(start, "findByCriteria<Business>"); return result; } public Wikitty findByCriteria(Criteria criteria) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Wikitty wikitty = wikittyService.findByCriteria(securityToken, criteria); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "findByCriteria"); + + timeTrace.add(start, "findByCriteria"); return wikitty; } public WikittyTree restoreTree(String wikittyId) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyTree result = wikittyService.restoreTree(securityToken, wikittyId); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreTree"); + + timeTrace.add(start, "restoreTree"); return result; } @@ -581,10 +538,10 @@ * @return {@true} if at least one node has been deleted */ public WikittyEvent deleteTree(String treeNodeId) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyEvent result = wikittyService.deleteTree(securityToken,treeNodeId); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "deleteTree"); + + timeTrace.add(start, "deleteTree"); return result; } @@ -596,7 +553,7 @@ public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode( Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Map.Entry<E, Integer> result = null; Map.Entry<WikittyTreeNode, Integer> node = wikittyService.restoreNode( @@ -607,8 +564,8 @@ result = new HashMap.SimpleEntry<E, Integer>(bean, node.getValue()); } } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreNode"); + + timeTrace.add(start, "restoreNode"); return result; } @@ -620,7 +577,7 @@ public <E extends BusinessEntity> Map<E, Integer> restoreChildren( Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Map<E, Integer> convertedResult = null; @@ -678,23 +635,23 @@ } } } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreChildren"); + + timeTrace.add(start, "restoreChildren"); return convertedResult; } public Wikitty restoreVersion(String wikittyId, String version) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Wikitty result = wikittyService.restoreVersion( securityToken, wikittyId, version); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreVersion"); + + timeTrace.add(start, "restoreVersion"); return result; } public <E extends BusinessEntity> boolean hasType(Class<E> clazz, String wikittyId) { try { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); boolean result = true; @@ -719,8 +676,8 @@ } } } - long stop = System.currentTimeMillis(); - traceTime(start, stop, "hasType"); + + timeTrace.add(start, "hasType"); return result; } catch (SecurityException eee) { throw eee; @@ -737,11 +694,11 @@ * @return update response */ public WikittyEvent storeExtension(WikittyExtension ext) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyEvent response = wikittyService.storeExtension(securityToken, ext); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "storeExtension"); + + timeTrace.add(start, "storeExtension"); return response; } @@ -752,11 +709,11 @@ * @return update response */ public WikittyEvent storeExtension(Collection<WikittyExtension> exts) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyEvent response = wikittyService.storeExtension(securityToken, exts); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "storeExtension<list>"); + + timeTrace.add(start, "storeExtension<list>"); return response; } @@ -767,10 +724,10 @@ * @return the corresponding object, exception if no such object found. */ public WikittyExtension restoreExtension(String extensionId) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyExtension extension = wikittyService.restoreExtension(securityToken, extensionId); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreExtension"); + + timeTrace.add(start, "restoreExtension"); return extension; } @@ -781,10 +738,10 @@ * @return the corresponding object, exception if no such object found. */ public WikittyExtension restoreExtensionLastVersion(String extensionName) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyExtension extension = wikittyService.restoreExtensionLastVersion(securityToken, extensionName); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "restoreExtensionLastVersion"); + + timeTrace.add(start, "restoreExtensionLastVersion"); return extension; } @@ -794,10 +751,10 @@ * @return extension id list */ public List<String> getAllExtensionIds() { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); List<String> result = wikittyService.getAllExtensionIds(securityToken); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "getAllExtensionIds"); + + timeTrace.add(start, "getAllExtensionIds"); return result; } @@ -809,10 +766,10 @@ * @return extensions */ public List<String> getAllExtensionsRequires(String extensionName) { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); List<String> result = wikittyService.getAllExtensionsRequires(securityToken, extensionName); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "getAllExtensionsRequires"); + + timeTrace.add(start, "getAllExtensionsRequires"); return result; } @@ -821,10 +778,10 @@ * This operation should be disabled in production environment. */ public WikittyEvent clear() { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); WikittyEvent result = wikittyService.clear(securityToken); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "clear"); + + timeTrace.add(start, "clear"); return result; } @@ -835,10 +792,10 @@ * @return update response */ public void syncSearchEngine() { - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); wikittyService.syncSearchEngine(securityToken); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "syncSearchEngine"); + + timeTrace.add(start, "syncSearchEngine"); } /** @@ -847,10 +804,10 @@ * @return the wikitty encapsulated */ public Wikitty getWikitty(BusinessEntity entity){ - long start = System.currentTimeMillis(); + long start = timeTrace.getTime(); Wikitty result = WikittyUtil.getWikitty(wikittyService, securityToken, entity); - long stop = System.currentTimeMillis(); - traceTime(start, stop, "getWikitty"); + + timeTrace.add(start, "getWikitty"); return result; }