You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2014/06/30 15:01:04 UTC
svn commit: r1606718 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws:
server/DuccHandler.java sort/ sort/JobDetailsProcesses.java
Author: degenaro
Date: Mon Jun 30 13:01:03 2014
New Revision: 1606718
URL: http://svn.apache.org/r1606718
Log:
UIMA-3912 DUCC WebServer (WS) sort on Job Details page
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java (with props)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
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=1606718&r1=1606717&r2=1606718&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 Mon Jun 30 13:01:03 2014
@@ -98,6 +98,7 @@ import org.apache.uima.ducc.ws.authentic
import org.apache.uima.ducc.ws.registry.IServicesRegistry;
import org.apache.uima.ducc.ws.registry.ServicesRegistry;
import org.apache.uima.ducc.ws.registry.ServicesRegistryMapPayload;
+import org.apache.uima.ducc.ws.sort.JobDetailsProcesses;
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;
@@ -1181,10 +1182,18 @@ public class DuccHandler extends DuccAbs
counter++;
}
}
+ TreeMap<JobDetailsProcesses,JobDetailsProcesses> map = new TreeMap<JobDetailsProcesses,JobDetailsProcesses>();
iterator = job.getProcessMap().keySet().iterator();
while(iterator.hasNext()) {
DuccId processId = iterator.next();
IDuccProcess process = job.getProcessMap().get(processId);
+ JobDetailsProcesses jdp = new JobDetailsProcesses(process);
+ map.put(jdp, jdp);
+ }
+ Iterator<JobDetailsProcesses> sortedIterator = map.keySet().iterator();
+ while(sortedIterator.hasNext()) {
+ JobDetailsProcesses jdp = sortedIterator.next();
+ IDuccProcess process = jdp.getProcess();
StringBuffer bb = new StringBuffer();
buildJobProcessListEntry(bb, job, process, DetailsType.Job, ShareType.UIMA, counter);
if(bb.length() > 0) {
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java?rev=1606718&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java Mon Jun 30 13:01:03 2014
@@ -0,0 +1,167 @@
+/*
+ * 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.uima.ducc.ws.sort;
+
+import org.apache.uima.ducc.transport.event.common.IDuccProcess;
+import org.apache.uima.ducc.transport.event.common.IDuccProcess.ReasonForStoppingProcess;
+import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
+
+public class JobDetailsProcesses implements Comparable<JobDetailsProcesses> {
+
+ private IDuccProcess _process = null;
+
+ public JobDetailsProcesses(IDuccProcess process) {
+ _process = process;
+ }
+
+ public IDuccProcess getProcess() {
+ return _process;
+ }
+
+ private boolean isOperational() {
+ boolean retVal = false;
+ try {
+ ProcessState processState = getProcess().getProcessState();
+ switch(processState) {
+ case Initializing:
+ case Running:
+ case Starting:
+ case Stopping:
+ retVal = true;
+ break;
+ default:
+ //retVal = false;
+ break;
+ }
+ }
+ catch(Exception e) {
+ }
+ return retVal;
+ }
+
+ private boolean isFailed() {
+ boolean retVal = true;
+ try {
+ IDuccProcess process = getProcess();
+ String agentReason = process.getReasonForStoppingProcess();
+ if(agentReason.equalsIgnoreCase(ReasonForStoppingProcess.KilledByDucc.toString())) {
+ retVal = false;
+ }
+ else if(agentReason.equalsIgnoreCase(ReasonForStoppingProcess.Other.toString())) {
+ retVal = false;
+ }
+ }
+ catch(Exception e) {
+ }
+ return retVal;
+ }
+
+ private long workItemErrors() {
+ long retVal = 0;
+ try {
+ retVal = getProcess().getProcessWorkItems().getCountError();
+ }
+ catch(Exception e) {
+ }
+ return retVal;
+ }
+
+ private long workItemDone() {
+ long retVal = 0;
+ try {
+ retVal = getProcess().getProcessWorkItems().getCountDone();
+ }
+ catch(Exception e) {
+ }
+ return retVal;
+ }
+
+ @Override
+ public int compareTo(JobDetailsProcesses jdp) {
+ int retVal = 0;
+ try {
+ JobDetailsProcesses j1 = this;
+ JobDetailsProcesses j2 = jdp;
+ IDuccProcess p1 = j1.getProcess();
+ IDuccProcess p2 = j2.getProcess();
+ long f1 = p1.getDuccId().getFriendly();
+ long f2 = p2.getDuccId().getFriendly();
+ if(f1 != f2) {
+ if(!j1.isOperational() && j2.isOperational()) {
+ retVal = 1;
+ }
+ else if(j1.isOperational() && !j2.isOperational()) {
+ retVal = -1;
+ }
+ else if(!j1.isFailed() && j2.isFailed()) {
+ retVal = 1;
+ }
+ else if(j1.isFailed() && !j2.isFailed()) {
+ retVal = -1;
+ }
+ else if(j1.workItemErrors() < j2.workItemErrors()) {
+ retVal = 1;
+ }
+ else if(j1.workItemErrors() > j2.workItemErrors()) {
+ retVal = -1;
+ }
+ else if(j1.workItemDone() < j2.workItemDone()) {
+ retVal = 1;
+ }
+ else if(j1.workItemDone() > j2.workItemDone()) {
+ retVal = -1;
+ }
+ else if(f1 > f2) {
+ retVal = -1;
+ }
+ else if(f1 < f2) {
+ retVal = 1;
+ }
+ }
+ }
+ catch(Exception e) {
+ }
+ return retVal;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ boolean retVal = false;
+ try {
+ JobDetailsProcesses j1 = this;
+ JobDetailsProcesses j2 = (JobDetailsProcesses)object;
+ IDuccProcess p1 = j1.getProcess();
+ IDuccProcess p2 = j2.getProcess();
+ String s1 = p1.getDuccId().toString();
+ String s2 = p2.getDuccId().toString();
+ retVal = s1.equals(s2);
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+ @Override
+ public int hashCode() {
+ JobDetailsProcesses j1 = this;
+ IDuccProcess p1 = j1.getProcess();
+ String s1 = p1.getDuccId().toString();
+ return s1.hashCode();
+ }
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/sort/JobDetailsProcesses.java
------------------------------------------------------------------------------
svn:eol-style = native