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;
+ }
}
