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 2013/03/20 19:26:23 UTC
svn commit: r1458991 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server:
DuccHandlerJsonFormat.java DuccHandlerLegacy.java DuccWebUtil.java
Author: degenaro
Date: Wed Mar 20 18:26:22 2013
New Revision: 1458991
URL: http://svn.apache.org/r1458991
Log:
UIMA-2762 DUCC webserver (WS) incorrectly calculates display list for Managed + Unmanaged Reservations
Modified:
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/server/DuccHandlerLegacy.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java
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=1458991&r1=1458990&r2=1458991&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 Wed Mar 20 18:26:22 2013
@@ -378,72 +378,15 @@ public class DuccHandlerJsonFormat exten
ArrayList<String> users = getJobsUsers(request);
DuccData duccData = DuccData.getInstance();
ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
- DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if(sortedJobs.size()> 0) {
Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
int counter = 0;
while(iterator.hasNext()) {
JobInfo jobInfo = iterator.next().getValue();
DuccWorkJob job = jobInfo.getJob();
- boolean list = false;
- if(!users.isEmpty()) {
- String jobUser = job.getStandardInfo().getUser().trim();
- switch(filterUsersStyle) {
- case IncludePlusActive:
- if(!job.isCompleted()) {
- list = true;
- }
- else if(users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case ExcludePlusActive:
- if(!job.isCompleted()) {
- list = true;
- }
- else if(!users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case Include:
- if(users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case Exclude:
- if(!users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- }
- }
- else {
- if(!job.isCompleted()) {
- list = true;
- }
- else if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
+ boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, job);
if(list) {
+ counter++;
JsonArray row = buildJobRow(request, job, duccData, servicesRegistry);
data.add(row);
}
@@ -828,48 +771,6 @@ public class DuccHandlerJsonFormat exten
return row;
}
- private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
- boolean list = false;
- if(!users.isEmpty()) {
- switch(filterUsersStyle) {
- case IncludePlusActive:
- if(!completed) {
- list = true;
- }
- else if(users.contains(user)) {
- list = true;
- }
- break;
- case ExcludePlusActive:
- if(!completed) {
- list = true;
- }
- else if(!users.contains(user)) {
- list = true;
- }
- break;
- case Include:
- if(users.contains(user)) {
- list = true;
- }
- break;
- case Exclude:
- if(!users.contains(user)) {
- list = true;
- }
- break;
- }
- }
- else {
- if(!completed) {
- list = true;
- }
- else
- list = true;
- }
- return list;
- }
-
private void handleServletJsonFormatReservationsAaData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
@@ -886,7 +787,6 @@ public class DuccHandlerJsonFormat exten
ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
ArrayList<String> users = getReservationsUsers(request);
- DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if((sortedCombinedReservations.size() > 0)) {
int counter = 0;
@@ -894,9 +794,9 @@ public class DuccHandlerJsonFormat exten
while(iR.hasNext()) {
Info info = iR.next().getValue();
IDuccWork dw = info.getDuccWork();
- String user = dw.getStandardInfo().getUser().trim();
- boolean completed = dw.isCompleted();
- if(isListEligible(users, filterUsersStyle, user, completed)) {
+ boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, dw);
+ if(list) {
+ counter++;
if(dw instanceof DuccWorkReservation) {
DuccWorkReservation reservation = (DuccWorkReservation) dw;
JsonArray row = buildReservationRow(request, reservation, duccData);
@@ -910,9 +810,6 @@ public class DuccHandlerJsonFormat exten
else {
// huh?
}
- if(counter++ > maxRecords) {
- break;
- }
}
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java?rev=1458991&r1=1458990&r2=1458991&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java Wed Mar 20 18:26:22 2013
@@ -334,72 +334,15 @@ public class DuccHandlerLegacy extends D
ArrayList<String> users = getJobsUsers(request);
DuccData duccData = DuccData.getInstance();
ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
- DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if(sortedJobs.size()> 0) {
Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
int counter = 0;
while(iterator.hasNext()) {
JobInfo jobInfo = iterator.next().getValue();
DuccWorkJob job = jobInfo.getJob();
- boolean list = false;
- if(!users.isEmpty()) {
- String jobUser = job.getStandardInfo().getUser().trim();
- switch(filterUsersStyle) {
- case IncludePlusActive:
- if(!job.isCompleted()) {
- list = true;
- }
- else if(users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case ExcludePlusActive:
- if(!job.isCompleted()) {
- list = true;
- }
- else if(!users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case Include:
- if(users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- case Exclude:
- if(!users.contains(jobUser)) {
- if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
- break;
- }
- }
- else {
- if(!job.isCompleted()) {
- list = true;
- }
- else if(maxRecords > 0) {
- if (counter++ < maxRecords) {
- list = true;
- }
- }
- }
+ boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, job);
if(list) {
+ counter++;
sb.append(trGet(counter));
buildJobsListEntry(request, sb, job.getDuccId(), job, duccData, servicesRegistry);
}
@@ -730,48 +673,6 @@ public class DuccHandlerLegacy extends D
sb.append("</tr>");
}
- private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
- boolean list = false;
- if(!users.isEmpty()) {
- switch(filterUsersStyle) {
- case IncludePlusActive:
- if(!completed) {
- list = true;
- }
- else if(users.contains(user)) {
- list = true;
- }
- break;
- case ExcludePlusActive:
- if(!completed) {
- list = true;
- }
- else if(!users.contains(user)) {
- list = true;
- }
- break;
- case Include:
- if(users.contains(user)) {
- list = true;
- }
- break;
- case Exclude:
- if(!users.contains(user)) {
- list = true;
- }
- break;
- }
- }
- else {
- if(!completed) {
- list = true;
- }
- else
- list = true;
- }
- return list;
- }
-
private void handleServletLegacyReservations(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
@@ -786,7 +687,6 @@ public class DuccHandlerLegacy extends D
ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
ArrayList<String> users = getReservationsUsers(request);
- DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if((sortedCombinedReservations.size() > 0)) {
int counter = 0;
@@ -794,9 +694,9 @@ public class DuccHandlerLegacy extends D
while(iR.hasNext()) {
Info info = iR.next().getValue();
IDuccWork dw = info.getDuccWork();
- String user = dw.getStandardInfo().getUser().trim();
- boolean completed = dw.isCompleted();
- if(isListEligible(users, filterUsersStyle, user, completed)) {
+ boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, dw);
+ if(list) {
+ counter++;
if(dw instanceof DuccWorkReservation) {
DuccWorkReservation reservation = (DuccWorkReservation) dw;
sb.append(trGet(counter));
@@ -810,9 +710,6 @@ public class DuccHandlerLegacy extends D
else {
// huh?
}
- if(counter++ > maxRecords) {
- break;
- }
}
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java?rev=1458991&r1=1458990&r2=1458991&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java Wed Mar 20 18:26:22 2013
@@ -18,8 +18,13 @@
*/
package org.apache.uima.ducc.ws.server;
+import java.util.ArrayList;
+
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.uima.ducc.transport.event.common.IDuccWork;
+
public class DuccWebUtil {
/*
@@ -33,4 +38,67 @@ public class DuccWebUtil {
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setDateHeader("Expires", 0); // Proxies.
}
+
+ public static final boolean isListable(HttpServletRequest request, ArrayList<String> users, int maxRecords, int counter, IDuccWork dw) {
+ boolean list = false;
+ DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
+ if(!users.isEmpty()) {
+ String jobUser = dw.getStandardInfo().getUser().trim();
+ switch(filterUsersStyle) {
+ case IncludePlusActive:
+ if(!dw.isCompleted()) {
+ list = true;
+ }
+ else if(users.contains(jobUser)) {
+ if(maxRecords > 0) {
+ if (counter < maxRecords) {
+ list = true;
+ }
+ }
+ }
+ break;
+ case ExcludePlusActive:
+ if(!dw.isCompleted()) {
+ list = true;
+ }
+ else if(!users.contains(jobUser)) {
+ if(maxRecords > 0) {
+ if (counter < maxRecords) {
+ list = true;
+ }
+ }
+ }
+ break;
+ case Include:
+ if(users.contains(jobUser)) {
+ if(maxRecords > 0) {
+ if (counter < maxRecords) {
+ list = true;
+ }
+ }
+ }
+ break;
+ case Exclude:
+ if(!users.contains(jobUser)) {
+ if(maxRecords > 0) {
+ if (counter < maxRecords) {
+ list = true;
+ }
+ }
+ }
+ break;
+ }
+ }
+ else {
+ if(!dw.isCompleted()) {
+ list = true;
+ }
+ else if(maxRecords > 0) {
+ if (counter < maxRecords) {
+ list = true;
+ }
+ }
+ }
+ return list;
+ }
}