Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-06-13 07:04:31 +0000
committerspingel2009-06-13 07:04:31 +0000
commit4baf499d7c56f0b535f5a251bbf702000d25257f (patch)
tree2acdbab13a9f2ff26fc07641fc67dbe4b13f3b11 /org.eclipse.mylyn.trac.core
parent835e522a4e7c4d4876c529127ed73c422a469747 (diff)
downloadorg.eclipse.mylyn.tasks-4baf499d7c56f0b535f5a251bbf702000d25257f.tar.gz
org.eclipse.mylyn.tasks-4baf499d7c56f0b535f5a251bbf702000d25257f.tar.xz
org.eclipse.mylyn.tasks-4baf499d7c56f0b535f5a251bbf702000d25257f.zip
RESOLVED - bug 268427: query only returns first 100 matches
https://bugs.eclipse.org/bugs/show_bug.cgi?id=268427
Diffstat (limited to 'org.eclipse.mylyn.trac.core')
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java43
1 files changed, 34 insertions, 9 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java
index 9533e0b18..0a57eb27e 100644
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java
+++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java
@@ -442,7 +442,9 @@ public class TracXmlRpcClient extends AbstractTracClient implements ITracWikiCli
private boolean isAPIVersionOrHigher(int epoch, int major, int minor, IProgressMonitor monitor)
throws TracException {
updateAPIVersion(monitor);
- return (epochAPIVersion > epoch || (epochAPIVersion == epoch && majorAPIVersion > major || (majorAPIVersion == major && minorAPIVersion >= minor)));
+ return epochAPIVersion > epoch //
+ || epochAPIVersion == epoch && (majorAPIVersion > major //
+ || majorAPIVersion == major && minorAPIVersion >= minor);
}
public TracTicket getTicket(int id, IProgressMonitor monitor) throws TracException {
@@ -516,10 +518,21 @@ public class TracXmlRpcClient extends AbstractTracClient implements ITracWikiCli
return tickets;
}
+ public void searchForTicketIds(TracSearch query, List<Integer> tickets, IProgressMonitor monitor)
+ throws TracException {
+ // an empty query string is not valid, therefore prepend order
+ Object[] result = (Object[]) call(monitor,
+ "ticket.query", "order=id" + query.toQuery(supportsMaxSearchResults(monitor))); //$NON-NLS-1$ //$NON-NLS-2$
+ for (Object item : result) {
+ tickets.add((Integer) item);
+ }
+ }
+
@SuppressWarnings("unchecked")
public void search(TracSearch query, List<TracTicket> tickets, IProgressMonitor monitor) throws TracException {
// an empty query string is not valid, therefore prepend order
- Object[] result = (Object[]) call(monitor, "ticket.query", "order=id" + query.toQuery()); //$NON-NLS-1$ //$NON-NLS-2$
+ Object[] result = (Object[]) call(monitor,
+ "ticket.query", "order=id" + query.toQuery(supportsMaxSearchResults(monitor))); //$NON-NLS-1$ //$NON-NLS-2$
Map<String, Object>[] calls = new Map[result.length];
for (int i = 0; i < calls.length; i++) {
@@ -533,6 +546,14 @@ public class TracXmlRpcClient extends AbstractTracClient implements ITracWikiCli
}
}
+ private boolean supportsWorkFlow(IProgressMonitor monitor) throws TracException {
+ return isAPIVersionOrHigher(2, 0, 0, monitor);
+ }
+
+ private boolean supportsMaxSearchResults(IProgressMonitor monitor) throws TracException {
+ return isAPIVersionOrHigher(2, 0, 0, monitor);
+ }
+
private TracTicket parseTicket(Object[] ticketResult) throws InvalidTicketException {
TracTicket ticket = new TracTicket((Integer) ticketResult[0]);
ticket.setCreated(parseDate(ticketResult[1]));
@@ -595,14 +616,18 @@ public class TracXmlRpcClient extends AbstractTracClient implements ITracWikiCli
Collections.sort(data.severities);
advance(monitor, 1);
- boolean trac011 = isAPIVersionOrHigher(1, 0, 0, monitor);
- attributes = getTicketAttributes("ticket.status", trac011, monitor); //$NON-NLS-1$
- data.ticketStatus = new ArrayList<TracTicketStatus>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.ticketStatus.add(new TracTicketStatus(attribute.name, attribute.value));
+ if (supportsWorkFlow(monitor)) {
+ data.ticketStatus = new ArrayList<TracTicketStatus>();
+ } else {
+ boolean assignValues = isAPIVersionOrHigher(1, 0, 0, monitor);
+ attributes = getTicketAttributes("ticket.status", assignValues, monitor); //$NON-NLS-1$
+ data.ticketStatus = new ArrayList<TracTicketStatus>(result.length);
+ for (TicketAttributeResult attribute : attributes) {
+ data.ticketStatus.add(new TracTicketStatus(attribute.name, attribute.value));
+ }
+ Collections.sort(data.ticketStatus);
+ advance(monitor, 1);
}
- Collections.sort(data.ticketStatus);
- advance(monitor, 1);
attributes = getTicketAttributes("ticket.type", monitor); //$NON-NLS-1$
data.ticketTypes = new ArrayList<TracTicketType>(result.length);

Back to the top