Author: degenaro Date: Tue Jun 10 09:29:27 2014 New Revision: 1601579 URL: http://svn.apache.org/r1601579 Log: UIMA-3873 DUCC Web Server (WS) should not show sub-seconds for job duration and projection
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/FormatHelper.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java?rev=1601579&r1=1601578&r2=1601579&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java Tue Jun 10 09:29:27 2014 @@ -58,6 +58,7 @@ import org.apache.uima.ducc.ws.registry. import org.apache.uima.ducc.ws.registry.ServicesRegistry; import org.apache.uima.ducc.ws.server.DuccCookies.DateStyle; import org.apache.uima.ducc.ws.utils.FormatHelper; +import org.apache.uima.ducc.ws.utils.FormatHelper.Precision; import org.apache.uima.ducc.ws.utils.HandlersHelper; import org.eclipse.jetty.server.handler.AbstractHandler; @@ -204,14 +205,14 @@ public abstract class DuccAbstractHandle return sb.toString(); } - public String getDuration(DuccId jobId, String millisV2, String millisV1) { + public String getDuration(DuccId jobId, String millisV2, String millisV1, Precision precision) { String methodName = "getDuration"; String retVal = ""; try { long d2 = Long.parseLong(millisV2); long d1 = Long.parseLong(millisV1); long diff = d2 - d1; - retVal = FormatHelper.duration(diff); + retVal = FormatHelper.duration(diff, precision); } catch(Exception e) { duccLogger.trace(methodName, null, "no worries", e); @@ -606,14 +607,14 @@ public abstract class DuccAbstractHandle return retVal; } - public String getDuration(HttpServletRequest request, IDuccWork dw) { + public String getDuration(HttpServletRequest request, IDuccWork dw, Precision precision) { String methodName = "getDuration"; String retVal = ""; try { String v2 = dw.getStandardInfo().getDateOfCompletion(); String v1 = dw.getStandardInfo().getDateOfSubmission(); duccLogger.trace(methodName, null, "v2:"+v2+" v1:"+v1); - retVal = getDuration(dw.getDuccId(),v2,v1); + retVal = getDuration(dw.getDuccId(),v2,v1,precision); } catch(Exception e) { duccLogger.trace(methodName, null, "no worries", e); @@ -624,14 +625,14 @@ public abstract class DuccAbstractHandle return retVal; } - public String getDuration(HttpServletRequest request, IDuccWork dw, long now) { + public String getDuration(HttpServletRequest request, IDuccWork dw, long now, Precision precision) { String methodName = "getDuration"; String retVal = ""; try { String v2 = ""+now; String v1 = dw.getStandardInfo().getDateOfSubmission(); duccLogger.trace(methodName, null, "v2:"+v2+" v1:"+v1); - retVal = getDuration(dw.getDuccId(),v2,v1); + retVal = getDuration(dw.getDuccId(),v2,v1,precision); } catch(Exception e) { duccLogger.trace(methodName, null, "no worries", e); @@ -642,7 +643,7 @@ public abstract class DuccAbstractHandle return retVal; } - public String getProjection(HttpServletRequest request, IDuccWorkJob job) { + public String getProjection(HttpServletRequest request, IDuccWorkJob job, Precision precision) { String methodName = "getProjection"; String retVal = ""; try { @@ -670,7 +671,7 @@ public abstract class DuccAbstractHandle if(projectedTime > 0) { long millis = Math.round(projectedTime); if(millis > 1000) { - String projection = FormatHelper.duration(millis); + String projection = FormatHelper.duration(millis,precision); String health = "class=\"health_yellow\""; String title = "title=\"Time (ddd:hh:mm:ss) until projected completion\""; retVal = "+"+"<span "+health+" "+title+"><i>"+projection+"</i></span>"; @@ -680,7 +681,7 @@ public abstract class DuccAbstractHandle else { long millis = Math.round(0-projectedTime); if(millis > 1000) { - String projection = FormatHelper.duration(millis); + String projection = FormatHelper.duration(millis,precision); String health = "class=\"health_purple\""; String title = "title=\"Time (ddd:hh:mm:ss) past-due projected completion\""; retVal = "-"+"<span "+health+" "+title+"><i>"+projection+"</i></span>"; @@ -707,7 +708,7 @@ public abstract class DuccAbstractHandle return avgMillis; } - public String decorateDuration(HttpServletRequest request, IDuccWorkJob job, String duration) { + public String decorateDuration(HttpServletRequest request, IDuccWorkJob job, String duration, Precision precision) { String location = "decorateDuration"; String retVal = duration; DuccId duccId = job.getDuccId(); @@ -724,7 +725,7 @@ public abstract class DuccAbstractHandle if(title.length() > 0) { title.append("; "); } - title.append("Time (ddd:hh:mm:ss) elapsed for job, average processing time per work item="+FormatHelper.duration(iAvgMillisPerWorkItem)); + title.append("Time (ddd:hh:mm:ss) elapsed for job, average processing time per work item="+FormatHelper.duration(iAvgMillisPerWorkItem,precision)); } String cVal = getCompletion(request,job); if(cVal != null) { Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1601579&r1=1601578&r2=1601579&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Tue Jun 10 09:29:27 2014 @@ -99,6 +99,7 @@ import org.apache.uima.ducc.ws.registry. import org.apache.uima.ducc.ws.registry.ServicesRegistry; import org.apache.uima.ducc.ws.registry.ServicesRegistryMapPayload; import org.apache.uima.ducc.ws.utils.FormatHelper; +import org.apache.uima.ducc.ws.utils.FormatHelper.Precision; import org.apache.uima.ducc.ws.utils.HandlersHelper; import org.apache.uima.ducc.ws.utils.LinuxSignals; import org.apache.uima.ducc.ws.utils.LinuxSignals.Signal; @@ -573,7 +574,7 @@ public class DuccHandler extends DuccAbs long now = System.currentTimeMillis(); String tS = t.getStart(""+now); String tE = t.getEnd(""+now); - initTime = getDuration(jobid,tE,tS); + initTime = getDuration(jobid,tE,tS,Precision.Whole); if(t.isEstimated()) { isp0 = "<span title=\"estimated\" class=\"health_green\">"; } @@ -610,7 +611,7 @@ public class DuccHandler extends DuccAbs IUimaPipelineAEComponent upc = upcIterator.next(); String iName = upc.getAeName(); String iState = upc.getAeState().toString(); - String iTime = FormatHelper.duration(upc.getInitializationTime()); + String iTime = FormatHelper.duration(upc.getInitializationTime(),Precision.Whole); loadme.append("<tr>"); loadme.append("<td>"+iName); loadme.append("<td>"+iState); @@ -670,7 +671,7 @@ public class DuccHandler extends DuccAbs long now = System.currentTimeMillis(); String tS = t.getStart(""+now); String tE = t.getEnd(""+now); - runTime = getDuration(jobid,tE,tS); + runTime = getDuration(jobid,tE,tS,Precision.Whole); if(t.isEstimated()) { rsp0 = "<span title=\"estimated\" class=\"health_green\">"; } @@ -1484,7 +1485,7 @@ public class DuccHandler extends DuccAbs // Total sb.append("<td align=\"right\">"); ltime = (long)time_total; - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); // % of Total sb.append("<td align=\"right\">"); sb.append(formatter.format(100)); @@ -1502,7 +1503,7 @@ public class DuccHandler extends DuccAbs catch(Exception e) { ltime = (long)workItemStateReader.getMin(); } - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); sb.append("</span>"); // Min sb.append("<td align=\"right\">"); @@ -1513,7 +1514,7 @@ public class DuccHandler extends DuccAbs catch(Exception e) { ltime = (long)workItemStateReader.getMin(); } - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); sb.append("</span>"); // Max sb.append("<td align=\"right\">"); @@ -1524,7 +1525,7 @@ public class DuccHandler extends DuccAbs catch(Exception e) { ltime = (long)workItemStateReader.getMin(); } - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); sb.append("</span>"); // pass 2 for (int i = 0; i < numstats; ++i) { @@ -1536,7 +1537,7 @@ public class DuccHandler extends DuccAbs sb.append("<td align=\"right\">"); time = uimaStats.get(i).getAnalysisTime(); ltime = (long)time; - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); // % of Total sb.append("<td align=\"right\">"); double dtime = (time/time_total)*100; @@ -1545,17 +1546,17 @@ public class DuccHandler extends DuccAbs sb.append("<td align=\"right\">"); time = time/casCount; ltime = (long)time; - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); // Min sb.append("<td align=\"right\">"); time = uimaStats.get(i).getAnalysisMinTime(); ltime = (long)time; - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); // Max sb.append("<td align=\"right\">"); time = uimaStats.get(i).getAnalysisMaxTime(); ltime = (long)time; - sb.append(FormatHelper.duration(ltime)); + sb.append(FormatHelper.duration(ltime,Precision.Tenths)); } sb.append("</table>"); } @@ -3431,7 +3432,7 @@ public class DuccHandler extends DuccAbs IUimaPipelineAEComponent upc = upcIterator.next(); String iName = upc.getAeName(); String iState = upc.getAeState().toString(); - String iTime = FormatHelper.duration(upc.getInitializationTime()); + String iTime = FormatHelper.duration(upc.getInitializationTime(),Precision.Whole); sb.append("<tr>"); sb.append("<td>"+iName); sb.append("<td>"+iState); Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1601579&r1=1601578&r2=1601579&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Tue Jun 10 09:29:27 2014 @@ -78,6 +78,7 @@ import org.apache.uima.ducc.ws.registry. import org.apache.uima.ducc.ws.registry.ServicesRegistryMapPayload; import org.apache.uima.ducc.ws.types.NodeId; import org.apache.uima.ducc.ws.types.UserId; +import org.apache.uima.ducc.ws.utils.FormatHelper.Precision; import org.eclipse.jetty.server.Request; public class DuccHandlerClassic extends DuccAbstractHandler { @@ -127,19 +128,19 @@ public class DuccHandlerClassic extends // Duration sb.append("<td valign=\"bottom\" align=\"right\">"); if(job.isCompleted()) { - String duration = getDuration(request,job); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job, Precision.Whole); + String decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append("<span>"); sb.append(decoratedDuration); sb.append("</span>"); } else { - String duration = getDuration(request,job,now); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job,now,Precision.Whole); + String decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append("<span class=\"health_green\""+">"); sb.append(decoratedDuration); sb.append("</span>"); - String projection = getProjection(request,job); + String projection = getProjection(request,job,Precision.Whole); sb.append(projection); } sb.append("</td>"); @@ -502,14 +503,14 @@ public class DuccHandlerClassic extends switch(reservation.getReservationState()) { case Completed: sb.append("<span>"); - duration = getDuration(request,reservation); + duration = getDuration(request,reservation,Precision.Whole); decoratedDuration = decorateDuration(request,reservation, duration); sb.append(decoratedDuration); sb.append("</span>"); break; default: sb.append("<span class=\"health_green\""+">"); - duration = getDuration(request,reservation,now); + duration = getDuration(request,reservation,now,Precision.Whole); decoratedDuration = decorateDuration(request,reservation, duration); sb.append(decoratedDuration); sb.append("</span>"); @@ -521,15 +522,15 @@ public class DuccHandlerClassic extends switch(job.getJobState()) { case Completed: sb.append("<span>"); - String duration = getDuration(request,job); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job,Precision.Whole); + String decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append(decoratedDuration); sb.append("</span>"); break; default: sb.append("<span class=\"health_green\""+">"); - duration = getDuration(request,job,now); - decoratedDuration = decorateDuration(request,job, duration); + duration = getDuration(request,job,now,Precision.Whole); + decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append(decoratedDuration); sb.append("</span>"); break; Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1601579&r1=1601578&r2=1601579&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Tue Jun 10 09:29:27 2014 @@ -84,6 +84,7 @@ import org.apache.uima.ducc.ws.registry. import org.apache.uima.ducc.ws.registry.ServicesRegistry; import org.apache.uima.ducc.ws.types.NodeId; import org.apache.uima.ducc.ws.types.UserId; +import org.apache.uima.ducc.ws.utils.FormatHelper.Precision; import org.eclipse.jetty.server.Request; import com.google.gson.Gson; @@ -148,19 +149,19 @@ public class DuccHandlerJsonFormat exten // Duration sb = new StringBuffer(); if(job.isCompleted()) { - String duration = getDuration(request,job); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job,Precision.Whole); + String decoratedDuration = decorateDuration(request,job, duration,Precision.Whole); sb.append("<span>"); sb.append(decoratedDuration); sb.append("</span>"); } else { - String duration = getDuration(request,job,now); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job,now,Precision.Whole); + String decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append("<span class=\"health_green\""+">"); sb.append(decoratedDuration); sb.append("</span>"); - String projection = getProjection(request,job); + String projection = getProjection(request,job,Precision.Whole); sb.append(projection); } row.add(new JsonPrimitive(sb.toString())); @@ -590,15 +591,15 @@ public class DuccHandlerJsonFormat exten switch(reservation.getReservationState()) { case Completed: sb.append("<span>"); - String duration = getDuration(request,reservation); - String decoratedDuration = decorateDuration(request,reservation, duration); + String duration = getDuration(request,reservation,Precision.Whole); + String decoratedDuration = decorateDuration(request,reservation,duration); sb.append(decoratedDuration); sb.append("</span>"); break; default: sb.append("<span class=\"health_green\""+">"); - duration = getDuration(request,reservation,now); - decoratedDuration = decorateDuration(request,reservation, duration); + duration = getDuration(request,reservation,now,Precision.Whole); + decoratedDuration = decorateDuration(request,reservation,duration); sb.append(decoratedDuration); sb.append("</span>"); break; @@ -609,15 +610,15 @@ public class DuccHandlerJsonFormat exten switch(job.getJobState()) { case Completed: sb.append("<span>"); - String duration = getDuration(request,job); - String decoratedDuration = decorateDuration(request,job, duration); + String duration = getDuration(request,job,Precision.Whole); + String decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append(decoratedDuration); sb.append("</span>"); break; default: sb.append("<span class=\"health_green\""+">"); - duration = getDuration(request,job,now); - decoratedDuration = decorateDuration(request,job, duration); + duration = getDuration(request,job,now,Precision.Whole); + decoratedDuration = decorateDuration(request,job,duration,Precision.Whole); sb.append(decoratedDuration); sb.append("</span>"); break; Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/FormatHelper.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/FormatHelper.java?rev=1601579&r1=1601578&r2=1601579&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/FormatHelper.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/FormatHelper.java Tue Jun 10 09:29:27 2014 @@ -23,13 +23,15 @@ import java.text.DecimalFormat; public class FormatHelper { + public enum Precision { Whole, Tenths }; + private static DecimalFormat df = new DecimalFormat("#.0"); static { df.setRoundingMode(RoundingMode.DOWN); } - public static String duration(final long millis) { + public static String duration(final long millis, Precision precision) { long seconds = millis / 1000; long dd = seconds / 86400; long hh = (seconds % 86400) / 3600; @@ -45,9 +47,16 @@ public class FormatHelper { } } } - double subseconds = (millis%1000.0)/1000; - String frac = df.format(subseconds); - text = text+frac; + switch(precision) { + case Tenths: + double subseconds = (millis%1000.0)/1000; + String frac = df.format(subseconds); + text = text+frac; + break; + case Whole: + default: + break; + } return text; } }